当社は現在、当社の新しい通知Microserviceを設計するが、集約された電子メールを処理する方法に問題があります。私たちが行う必要があるのは、実行されるすべてのアクション(20分〜数分)を電子メールで送信するのではなく、完了したすべてのアクションをまとめた1時間後に電子メールを送信することです。我々が持っているもの
は、これまで
私たちは、これまでのところ、我々はクライアントサービスは、当社のクラスタ内のいずれかのサービスであり、Messagebotは、私たちの通知Microserviceあるメッセージングパターン、このタイプのを持っていることを提案します。
- クライアントサービスは、そのデータベースに将来
- Messagebot店で詳細を何かを送信する必要があることMessagebotする通知を送信
- Messagebotは、定期的に送信する必要がある何のためにそのデータベースをチェック
- MessagebotはAPI経由で別のサービス(クライアントサービスの可能性があります)からのデータを取得します
- Messagebotは#3のデータとHTMLテンプレートを使用してメールを送信します
送信する必要があるデータについてはディベート
、我々はあまり確かであり、それは我々が助けを必要とするものです。これまでのところ、我々は、これが通知サービスへのクライアントサービスからJSONの構造であるべきだと思う(ステップ#1):
{
template_id: SOME_TEMPLATE_ID,
user_id: SOME_USER_ID,
objectid: SOME_OBJECT_ID
}
または
{
template_id: SOME_TEMPLATE_ID,
user_id: SOME_USER_ID,
required_objects: { task_id: SOME_TASK_ID, document_id: SOME_DOCUMENT_ID }
}
TASK_IDとDOCUMENT_IDは単なる一例であり、それが変わってしまいますテンプレートに基づいて別のテンプレートの場合は同じように簡単に{product_id: SOME_PRODUCT_ID}
にすることができます。データのソースは、(ENVのVARのような)オブジェクトに暗示されることになるので、我々は唯一のTEMPLATE_IDが必要
- :
はなぜディベート
は、私たちの考えはこれまでということです。たとえば、タスクオブジェクトはhttp://taskservice/:idになります。それ以外の場合は、将来、APIの不具合やURLの切り替えに問題が生じる可能性があります。
- 電子メールと名前のペアが複数のメッセージにマッチしないという問題を回避するため、電子メールと名前の代わりにuseridを使用する必要があります
- オブジェクトについては、依然として懐疑的です。クライアントアプリケーションサービスMessagebotの内部動作の知識はありますが、単一のオブジェクトIDはあまり拡張できないかもしれません。 2つ以上のオブジェクトを必要とする多くのメッセージを簡単に想像できます。結論
で
お読みいただきありがとうございました。このサービスの設計は、組織全体にとって重要なものであるため、重要です。
私たちの状況でJSON構造を議論したのはどれですか?また、私たちの要件を知って、このタイプのサービスのための適切なセットアップは何ですか? (別名。私たちは、他の仮定で正しいですか?)
template_id、task_id、およびdocument_idは何かについてもう少し詳しく知ることなく、クエリに対処するのは難しいですか?また、Messagebotを各イベントで仕事をするために必要なすべてのデータを送信するという選択肢は考慮していませんか? –