架构的演进通常是问题驱动而非设计驱动。我叹了口气,然后打开了编辑器。我把这个公共逻辑下沉到了一个基础服务。我把这条经验写进了团队 wiki

灰度发布说好的百分之一,结果配置写成了百分之百,全员灰度。我先给自己泡了杯茶,做好了打持久战的准备。我把这个跨服务的事务改成了最终一致,风险小了。复盘会上我们把它列成了案例

这个架构在文档里很清晰,在代码里很模糊。我愣了两秒,然后继续敲代码。我发现这个服务的响应时间受下游影响很大。幸好之前留了备份

分布式之后,最难保证的是数据一致。我笑了笑,决定不解释。我把注册中心的超时时间调长了,问题从每天三次变成每周一次。第二天这个方案就变成了团队标准做法

消息队列是解耦神器,也是事故甩锅神器:消息丢了算谁的?我把它记在心里,没跟任何人说。我把这个接口的契约固定下来,上下游都不再随意改。这条经验值直接拉满

服务的粒度是这门学科里最难的问题。我盯着屏幕,觉得这才是我的一天。我发现这个接口被三个服务依赖,改动成本很高。幸好之前留了备份

架构的演进通常是问题驱动而非设计驱动。我听完沉默了,因为太真实了。我发现这个服务的职责包含了三种不同的业务。第二天这个方案就变成了团队标准做法