目标:
设计企业级系统架构,支持使用API集成的电子邮件、短信、聊天和其他公共社交应用程序:
•电子邮件•短信/一次性密码•推送通知(移动设备和Web浏览器)•聊天 - Whatsapp/Telegram
这是一种通用的功能,适用于所有现代分布式应用程序,无论使用任何编程语言和技术。
我试图简化这个设计概念,以满足高可用性、高性能和分析服务的常见用例需求。这是通过微服务架构实现并在Kubernetes容器上部署,使其成为完全云原生的现代系统。让我们开始吧!
功能要求:
•发送通知•对通知进行优先级排序•根据客户的保存偏好发送通知•支持单个/简单的通知消息和批量通知消息•各种通知的分析用例•通知消息的报告
非功能性需求(NFR):
•高性能•高可用性(HA)•低延迟•可扩展/可插拔的设计,以添加更多的客户端、适配器和供应商•支持Android/iOS移动设备和桌面/笔记本电脑的Web浏览器•与所有通知模块的API集成和与客户端和服务提供商/供应商的外部集成•可在本地(VMware Tanzu)和AWS、GCP或Azure等公共云服务上扩展负载