Guides the planning of a microservices architecture. Use this skill when asked to design, plan, or architect a system using microservices...
This skill provides a structured workflow for planning a microservices architecture. It helps in making key architectural decisions and producing standard deliverables.
The process is divided into four main steps. Follow them in order to ensure a comprehensive design.
The first step is to identify the boundaries of each microservice. The goal is to create services that are loosely coupled and highly cohesive.
assets/templates/service_decomposition_template.mdreferences/service_decomposition.md for criteria on how to define service boundaries, based on principles like Domain-Driven Design.For each potential service, copy the template and fill it out.
Once services are identified, determine how they will communicate with each other.
assets/templates/communication_matrix_template.md to help select between REST, gRPC, GraphQL, and messaging.references/communication_patterns.md.Not all services need to use the same pattern. Choose the best fit for each interaction.
Address how data will be managed across services and what infrastructure is needed.
references/data_patterns.md for details on this and handling distributed transactions with the Saga pattern.references/infrastructure.md.references/event_driven.md.The final step is to document the architecture and the service APIs.
references/c4_model.md for an explanation of the C4 model.assets/templates/service_contract_template.json.references/service_contracts.md for details on what to include in a contract and different specification formats.By the end of this process, you will have produced:
