SystemCity
WorkspaceProblemsCanvasPricing
Sign in
S

SystemCity

AI-powered system design tutor. Learn architecture, ace interviews, build real systems.

Learn

  • Learn System Design
  • Interview Prep Guide
  • All Problems
  • Glossary
  • Compare
  • Design Canvas

Product

  • Pricing
  • Portfolio
  • Support

Legal

  • Terms
  • Privacy
  • Refunds

© 2026 SystemCity. All rights reserved.

Master system design · interview prep · 120+ problems

Back to glossary

Architecture Patterns

Microservices

An architectural style that structures an application as a collection of small, independently deployable services, each responsible for a specific business capability.

In depth

In a microservices architecture, the application is split into many small services, each owning a distinct business capability and its own data store, communicating over the network (HTTP, gRPC, or async messaging). Teams own services end-to-end and can deploy independently, choose their own languages and frameworks, and scale services individually.

The promised benefits: faster team autonomy, smaller and more focused codebases, independent scaling, fault isolation, and freedom to use the best tool per workload. The realized cost: distributed-systems complexity (network failures, eventual consistency, distributed tracing), operational burden (many deployment pipelines, many sets of dashboards, service discovery, traffic management), and harder cross-service refactoring.

Microservices work best for organizations that already have the engineering maturity to operate them — strong CI/CD, observability, on-call practices, and team boundaries that match service boundaries. Startups and small teams almost always overpay for microservices; a well-structured monolith is faster to build and easier to operate at small scale.

When to use

Adopt microservices when team coordination on a monolith becomes the bottleneck, when different parts of the system have radically different scale or technology needs, or when you can already operate the underlying infrastructure.

Tradeoffs

Microservices trade local complexity (code) for distributed complexity (network). Without serious investment in platform tooling, they slow you down rather than speed you up.

Related terms

Monolith

A single deployable application containing all features and logic, sharing one codebase, one database, and one deployment unit.

API Gateway

A single entry point that routes external requests to internal services, handling concerns like authentication, rate limiting, and request transformation in one place.

Service Mesh

A dedicated infrastructure layer that handles service-to-service communication in a microservices architecture — encryption, retries, observability, traffic shaping — outside application code.

Event-Driven Architecture

An architectural style where services communicate primarily by emitting and reacting to events, rather than calling each other directly.

CQRS

A pattern that separates the model used for writing data (commands) from the model used for reading data (queries), allowing each to be optimized independently.