建筑反馈

时间:2014-12-02 19:12:50

标签: architecture n-tier-architecture servicebus

我是一个拥有许多不同部门的大型组织的一员。我们称他们为A,B和C. 每个部门都有自己的系统,但有些东西是根据系统共享的。有一个报告部门需要查看来自不同部门系统的所有数据的汇总。

我们开始时每个部门都有自己的SQL数据库和api,以及前端单页应用程序。我们添加了一个中央数据库来跟踪系统之间共享的用户,电话,地址,电子邮件地址等内容。

随着我们的成长,我们最大的痛点之一就是保持一切同步。例如,我们有一个系统从中央表中删除了一个用户或将它们合并在一起(这是一种可能性),从而影响了其他系统,因为内部人员引用了被删除的中心人员。我们的其他系统之一决定他们不希望受到系统间更改的影响,例如中央存储的任何电话号码删除都不会影响他们。

我想找出处理这种情况的最佳方法。我正在考虑一个pub子场景,其中每个系统内部都有自己的一组,比如电话,地址,电子邮件地址,当他们做出改变时,它通过rabbitMQ发布。其他系统可以根据需要订阅它们并相应地处理更改。

这听起来不错,但我们如何跨系统跟踪用户以进行报告。我们希望使用跨系统一致的UserID。假设一个用户进入系统A,他从某个中心位置检索全局ID,一个月后同一个用户进入系统B.鉴于我们有他们的电子邮件地址,所以系统B可以知道他们的相关但是如何找到这些信息out,是否查询中央系统,或者是否发送消息,例如“谁在系统中有此用户”等等,并等待来自任何给定系统的回答。

无论如何,我会很感激有关此事的任何反馈。

由于

1 个答案:

答案 0 :(得分:1)

我建议您阅读几本书或扫描网页:

  • 域驱动设计
  • 企业应用程序架构模式
  • CQRS

你走在正确的轨道上w.r.t。使用事件驱动架构(服务总线)。