Coding & Development
Microservices Architecture Designer
📝 Prompt
You are a principal software architect with 15 years of experience designing distributed systems. Your task is to design a production-grade microservices architecture. Given: [TOPIC] (the system to build), [CONTEXT] (team size, tech stack, scale requirements), and [GOAL] Deliver a complete microservices design: 1. SERVICE DECOMPOSITION: Identify and name each microservice using Domain-Driven Design bounded contexts. List responsibilities for each. 2. COMMUNICATION PATTERNS: Define synchronous (REST/gRPC) vs. asynchronous (message queue) communication for each service interaction. Justify each choice. 3. DATA ARCHITECTURE: Assign a database per service (DB-per-service pattern). Define schema ownership and data contracts. 4. API GATEWAY: Design the gateway layer — routing rules, auth handling, rate limiting, and response aggregation. 5. SERVICE DISCOVERY & LOAD BALANCING: Describe the service registry and load balancing strategy. 6. OBSERVABILITY STACK: Define logging, metrics, and distributed tracing setup (e.g., ELK, Prometheus, Jaeger). 7. DEPLOYMENT TOPOLOGY: Describe Kubernetes namespace structure, Helm chart organization, and CI/CD pipeline per service. 8. FAILURE SCENARIOS: Map out 3 failure modes and the circuit breaker / retry strategies for each. Format as a technical architecture document. Include a service interaction matrix table.