service-based-architecture-designer
Installation
SKILL.md
Service-Based Architecture Designer
When to Use
You need to design a service-based architecture or evaluate whether service-based is the right distributed style for a system. Service-based architecture is a hybrid of microservices — it uses coarse-grained domain services (typically 4-12, averaging ~7) rather than fine-grained single-purpose services. It is considered the most pragmatic distributed architecture style. Typical situations:
- New distributed system — "we need something beyond a monolith but microservices feels like overkill"
- Monolith decomposition — "our deployments take hours and we want independent deployability"
- Architecture comparison — "should we use service-based or microservices?"
- Database topology — "should our services share a database or have separate ones?"
- Transaction design — "we need ACID transactions across some of these workflows"
Before starting, verify:
- Has an architecture style already been selected? If the user hasn't decided on service-based yet, consider using
architecture-style-selectorfirst. - Are driving architecture characteristics known? If not, use
architecture-characteristics-identifier— you need to know what quality attributes drive the design. - If the user explicitly asks for service-based design, proceed directly.