事件驱动领域事件架构
Architecture
领域事件架构图,展示聚合根如何引发领域事件,这些事件既在进程内分发给本地处理器,也跨边界分发给其他限界上下文中的集成事件消费者。该模板模拟 DDD 事件模式,领域逻辑通过干净的事件分发器触发副作用,保持领域和基础设施关注点的分离。对于实施基于事件集成的领域驱动设计的团队至关重要。
Architecture
按业务能力组织的微服务分解架构图:身份认证、产品目录、定价和订单履行,每个都有独立的数据存储和 API。该模板展示如何将单体应用拆分为与业务领域对齐的服务,使用 Backend-for-Frontend (BFF) 模式进行客户端特定的聚合。适合规划领域驱动微服务边界的架构师。
Frontend { # Frontend BFF
n1: circle label:"User Action"
n2: rectangle label:"BFF Layer"
n3: rectangle label:"Compose UI Response"
n4: circle label:"Render UI"
n1.handle(right) -> n2.handle(left)
n2.handle(bottom) -> Identity.n5.handle(top) [label="Auth Check"]
n3.handle(right) -> n4.handle(left)
}
Identity { # Identity & Access
n5: rectangle label:"Authenticate User"
n6: diamond label:"Authorized?"
n7: rectangle label:"Issue Access Token"
n8: rectangle label:"Deny Access"
n5.handle(right) -> n6.handle(left)
n6.handle(right) -> n7.handle(left) [label="Yes"]
n6.handle(bottom) -> n8.handle(top) [label="No"]
n7.handle(bottom) -> Catalog.n9.handle(top) [label="Token"]
n8.handle(top) -> Frontend.n3.handle(bottom) [label="403"]
}
Catalog { # Product Catalog
n9: rectangle label:"Fetch Product Details"
n10: rectangle label:"Product Database"
n11: rectangle label:"Return Catalog Data"
n9.handle(right) -> n10.handle(left) [label="Query"]
n10.handle(right) -> n11.handle(left) [label="Products"]
n11.handle(bottom) -> Pricing.n12.handle(top) [label="Product IDs"]
n11.handle(top) -> Frontend.n3.handle(bottom) [label="Catalog JSON"]
}
Pricing { # Pricing & Promotions
n12: rectangle label:"Calculate Price"
n13: rectangle label:"Apply Promotions"
n14: rectangle label:"Return Final Price"
n12.handle(right) -> n13.handle(left) [label="Base Price"]
n13.handle(right) -> n14.handle(left) [label="Discounted"]
n14.handle(top) -> Frontend.n3.handle(bottom) [label="Price JSON"]
}
Fulfillment { # Order Fulfillment
n15: rectangle label:"Reserve Inventory"
n16: rectangle label:"Create Shipment"
n17: rectangle label:"Update Order Status"
n15.handle(right) -> n16.handle(left) [label="Reserved"]
n16.handle(right) -> n17.handle(left) [label="Shipped"]
n17.handle(top) -> Frontend.n3.handle(bottom) [label="Status Update"]
}
Decomposing a monolith by technical layers (UI, business logic, data) leads to distributed monoliths where every change requires coordinating multiple teams. Decomposition by business capability aligns service boundaries with organizational structure, enabling autonomous teams that own the full stack for their domain.
Decomposition by subdomain (DDD) is more rigorous but requires domain expertise. Decomposition by technical layer is simpler but creates coupling. This template provides a practical starting point for teams planning their first microservices decomposition.
| Template Name | 按业务能力分解微服务架构 |
| Category | Architecture |
| Steps | 6 workflow steps |
| Format | FlowZap Code (.fz file) |
Architecture
领域事件架构图,展示聚合根如何引发领域事件,这些事件既在进程内分发给本地处理器,也跨边界分发给其他限界上下文中的集成事件消费者。该模板模拟 DDD 事件模式,领域逻辑通过干净的事件分发器触发副作用,保持领域和基础设施关注点的分离。对于实施基于事件集成的领域驱动设计的团队至关重要。
Architecture
DDD 限界上下文架构图,订单、客户、物流和计费上下文通过防腐层、共享内核和定义集成关系的上下文映射连接。该模板可视化战略 DDD 模式,将复杂领域分解为通过明确定义的集成事件通信的自治限界上下文。对于将领域驱动设计应用于大规模企业系统的架构师至关重要。
Architecture
微服务 API 网关架构图,展示请求路由、JWT 身份验证、速率限制、服务发现以及跨分布式后端服务的响应聚合。该模板模拟微服务生态系统中所有客户端流量的入口点,在请求到达内部服务之前执行安全策略。适合设计具有集中式横切关注点的可扩展 API 基础设施的平台工程师。
Architecture
每服务独立数据库架构图,每个微服务拥有其专用数据存储,通过 Kafka 进行事件驱动同步以实现跨服务数据一致性。该模板展示了微服务数据隔离的核心原则,展示 PostgreSQL 和 MongoDB 如何在多语言持久化策略中共存。对于在保持最终一致性的同时强制服务自治的架构师至关重要。
Architecture
绞杀者模式迁移架构图,展示使用路由层在新旧系统之间分流流量,逐步用新微服务替换遗留单体应用。该模板模拟经过验证的迁移策略,新功能作为微服务构建,遗留端点逐步退役。对于在不进行高风险大爆炸重写的情况下现代化遗留系统的团队至关重要。