问题
我们目前正在构建新的Notification Microservice,但在如何处理汇总的电子邮件方面存在问题。我们需要做的是不是每次执行一次电子邮件都会发送一封电子邮件(几分钟内可能会超过20次),我们会在一小时后发送一封电子邮件,总结所有已完成的操作。
我们到目前为止
到目前为止,我们建议使用这种类型的消息传递模式,其中Client Service是我们集群中的任何服务,Messagebot是我们的Notification Microservice。
辩论
对于需要发送的数据,我们不太确定,这是我们需要帮助的。到目前为止,我们认为这应该是从客户服务到通知服务的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}
。
辩论的原因
到目前为止,我们的想法是:
结论
感谢您的阅读。这项服务的设计很重要,因为它将成为我们整个组织的核心。
哪种辩论JSON结构最适合我们的情况?另外,了解我们的要求,这种服务的正确设置是什么? (又名。我们在其他假设中是否正确?)
答案 0 :(得分:1)
所以你的信息机器人
在我看来,你的messagebot被赋予了太多的任务。如果我正在设计系统,我想保持messagebot更简单。服务应该封装知识以编译电子邮件,例如管理它自己的模板等等。这些服务会将已编译的电子邮件推送到队列中,以便邮件服务器可以接收和发送。 messagebot中唯一的逻辑是从队列中获取电子邮件并发送。通过这种方式,将来您将拥有多少服务并不重要,messagebot将保持简洁。