1.2 年の開発の後、Ergo XNUMX フレームワークがリリースされ、完全な Erlang ネットワーク スタックとその OTP ライブラリが Go 言語で実装されました。 このフレームワークは、既製のアプリケーション、スーパーバイザー、および GenServer 設計パターンを使用して Go 言語で分散ソリューションを作成するための Erlang の世界からの柔軟なツールを開発者に提供します。 Go 言語には Erlang プロセスに直接似たものがないため、フレームワークは例外状況を処理するためにリカバリ ラッパーを備えた GenServer の基礎としてゴルーチンを使用します。 プロジェクト コードは MIT ライセンスに基づいて配布されます。
新しいリリースでは:
- 自己署名証明書を自動的に生成する機能を備えた TLS 1.3 のサポートを実装しました (接続を暗号化する必要があるが、接続では Cookie を使用してホストへのアクセスを提供するため、認証する必要がない場合)
- 静的ルーティングを追加して、EPMD に依存してホスト ポートを決定する必要がなくなりました。 これによりセキュリティ問題が解決され、暗号化と合わせてパブリック ネットワーク上で Erlang クラスターを実行できるようになります。
- 新しい GenStage テンプレート (Elixir ワールドから) が追加されました。これにより、メッセージ バスを使用せずに Pub/Sub ソリューションを作成できるようになります。 このテンプレートの重要な機能の XNUMX つは「バックプレッシャー制御」です。 「プロデューサー」は、「コンシューマー」によって要求された量のメッセージを正確に配信します。 実装例はここにあります。
ディスカッション セクションでは、分散トランザクション機能を実装する SAGAS 設計パターンの実装について説明します。
出所: オープンネット.ru