Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。Pryce氏とチームがイベントソースアーキテクチャに基づいた新たなシステム構築に着手した時、氏らは重大な設計上のミスをいくつか犯したが、自分たちも驚くほど簡単にリカバリすることができた。氏はブログ記事で、氏らが犯した間違いと、アーキテクチャのリファクタリングによるリカバリを可能にした要因について説明している。最初の間違いは、イベント履歴と、対応するエンティティの現在の状態のビューを、両方とも永続化したことだった。現在の状態はプロジェクションではなく、イベントから更新されたものだったが、実際にはイベントを記録したコマンドハンドラによって更新されていた。記録したイベントからエンティティの状態を再構築できなかったことと、現在の状態のために使用したリレーショナルモデルにおけるマイグレーション管理が大きなオーバーヘッドになったことだ。Tests"の著者のひとりであるPryce氏は、2つの永続化メカニズムを一緒に維持すれば、イベントソーシングの意味がすべて失われてしまう、ということを認めている。ミスの原因は、イベントソーシングの文献の推奨事項と比較した場合のミスマッチを反映せずに、チームにとって都合のよい設計を考えた点にあった。デメリットがメリットを上回ることが明らかになるまで、氏らはこの設計を続けていた。なった時点で、技術面でのレトロスペクティブを実施して、標準的なイベントソーシングデザインに移行することを決定したのだった。次に犯した間違いは、イベント駆動アーキテクチャとイベントソースアーキテクチャの混同だった。イベント駆動アーキテクチャでは、コンポーネントは受信したイベントに対応するタスクを実行し、状態変化を通知するイベントを発行する。イベントソーシングでは、状態変化はイベントとして記録され、エンティティの現在の状態は、そのエンティティに関連するすべてのイベントから計算によって求められる。この混同により、コンポーネントが履歴にイベントを記録すると同時に、他のコンポーネントのアクティビティもトリガする、という設計になった。過去に何が起こったかを知るためにイベントを読むこと、の2つを区別するためのロジックをイベントに実装する必要が生じた時、氏らは、自分たちの間違いに気付いたのだった。この混同は、イベントストアをメッセージバスとして使用する設計にもつながった。氏らは、コンポーネントのプロジェクションを最新の状態に保つために、通知を送信するようにした。イベントストアを、イベント履歴と、コンポーネント間の一時的な通信の両方に使用したのだ。このため、コンシューマに提示する前に履歴から除外すべき技術的なイベントも、イベントストアに含まれることになった。Pryce氏の説明した最後の間違いは、イベントストアにおいて、イベントの読み取りと保存にHTTPインターフェイスを使用したことだ。このため、ACIDトランザクションでイベントを処理することができなくなり、問題解決のために、別のメカニズムの構築を強いられることになった。幸運だったのは、イベント履歴が運用システムに影響する前に、氏らが早い段階でこれらすべての間違いを発見したことだ。HTTPインターフェイスは、コマンドプロセッサ用のデータベース直接接続に置き換えられた。コンポーネント間のデータ受け渡しに通知を使用することを止めて、RESTの使用に戻すことにした。最後に、コマンドハンドラでエンティティの現在状態を更新するのではなく、エンティティがロードされた時のイベント履歴から算出するようにした。イベントによる現在状態のプロジェクションはまだ使用されているが、これはリードスルーキャッシュとして、純粋に最適化のためのものと見なされている。結論としてPryce氏は、アーキテクチャに大幅な変更を加えたが、変更は比較的簡単であった、と述べた上で、その理由がイベントソーシングの直行性にあることを指摘している。アプリケーションにはポート/アダプタアーキテクチャがあるため、ポートあるいはアダプタインターフェースの背後にある実装は容易に変更が可能だ。ポート/アダプタアーキテクチャを活用して開発された、広範な機能テストがある。このような方法によって、技術的なアーキテクチャと機能的な動作実装が分離されていることにより、アーキテクチャ変更の実施が簡単になったのだ。不慣れなアーキテクチャスタイルをシステムに採用する場合、間違いを犯すことは避けられない、とPryce氏は言う。ポート/アダプタスタイルのおかげで、経験不足であってもイベントソーシングを採用することが可能であるだけでなく、システム構築時の誤解からもリカバリできる、と氏は考えている。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。