What problem does it solve? Designing distributed systems requires decisions about service boundaries, inter-service communication, distributed data management, and failure handling, and getting these wrong leads to tightly coupled services, cascading failures, and inconsistent data. ## Core Features & Use Cases - Service Decomposition: Split monoliths by business capability or DDD subdomains, and migrate gradually using the Strangler Fig pattern. - Communication Patterns: Implement synchronous REST/gRPC calls with retries, asynchronous event-driven messaging with Kafka, and API Gateway aggregation. - Resilience & Data Patterns: Apply circuit breakers, retry with exponential backoff, bulkheads, database-per-service, and Saga orchestration for distributed transactions. - Use Case: When decomposing a monolithic e-commerce app, use this Skill to design separate Order, Payment, and Inventory services that coordinate through an orchestrated saga with compensating actions on failure. ## Quick Start Ask the agent to design a microservices architecture for your application, including service boundaries, event-driven communication, and circuit breaker patterns.