Jonatan Matajonmatum.com
conceptsnotesexperimentsessays
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Concepts

Microservices

Architectural style structuring an application as a collection of small, independent, deployable services, each with its own business logic and data.

seed#microservices#architecture#distributed-systems#api#decoupling

What it is

Microservices are an architectural style where an application is composed of small, independent services communicating over the network (HTTP, messages, events). Each service owns its domain, data, and deployment lifecycle.

Characteristics

  • Deployment independence: each service deploys separately
  • Data ownership: each service has its own database
  • Technology heterogeneity: each service can use a different stack
  • Autonomous teams: one team per service (or group of services)

Microservices vs Monolith

AspectMonolithMicroservices
DeploymentAll togetherIndependent
ScalingVerticalHorizontal per service
ComplexityIn the codeIn the infrastructure
ConsistencyACID transactionsEventual consistency

When NOT to use microservices

  • Small teams (fewer than 5 people)
  • Early-stage product (undefined domain)
  • No distributed systems experience
  • When a modular monolith is sufficient

Associated patterns

  • API Gateway
  • Event-driven
  • Saga
  • CQRS

Why it matters

Microservices allow independent teams to develop, deploy, and scale services autonomously. But their operational complexity is significant — they require observability, service mesh, distributed data management, and an ownership culture. They are not the default answer.

References

  • Microservices — Martin Fowler, 2014.
  • Building Microservices — Sam Newman, 2021.
  • Microservice Patterns — Chris Richardson, 2024. Microservices pattern catalog.

Related content

  • Monorepos

    Code organization strategy where multiple projects coexist in a single repository, sharing dependencies, configuration, and build tooling.

  • Event-Driven Architecture

    Architectural pattern where components communicate through asynchronous events, enabling decoupled, scalable, and reactive systems.

  • Cloud Native

    Development approach leveraging cloud advantages: containers, microservices, immutable infrastructure, and declarative automation for scalable and resilient systems.

  • Zero Trust

    Security architecture that rigorously verifies every request regardless of origin, eliminating implicit trust in internal networks.

  • Strangler Fig Pattern

    Incremental migration strategy that gradually replaces a legacy system with new components, progressively routing traffic until the old system can be retired.

  • Service Mesh

    Infrastructure layer dedicated to managing communication between microservices, providing observability, security, and traffic control transparently.

  • Saga Pattern

    Pattern for managing distributed transactions in microservices through a sequence of local transactions with compensating actions to handle failures.

  • Micro Frontends

    Architectural pattern extending microservices to the frontend, allowing independent teams to develop and deploy parts of a web application autonomously.

  • Hexagonal Architecture

    Architectural pattern isolating business logic from the outside world through ports and adapters, facilitating testing and technology changes.

  • Domain-Driven Design

    Software design approach centering development on the business domain, using a ubiquitous language shared between developers and domain experts.

  • Distributed Tracing

    Observability technique tracking requests across multiple services in distributed systems, enabling bottleneck identification and failure diagnosis.

  • Backend for Frontend

    Architectural pattern where each client type has its own dedicated backend adapting microservice APIs to that client's specific needs.

  • AWS Step Functions

    AWS serverless orchestration service that coordinates multiple services into visual workflows using Amazon States Language (ASL), with built-in error handling, retries, and parallel execution.

  • AWS EventBridge

    AWS serverless event bus connecting applications using events, enabling decoupled event-driven architectures with rule-based routing.

  • AWS ECS

    AWS container orchestration service that runs and scales Docker applications without managing the underlying cluster infrastructure.

  • API Gateway Pattern

    Pattern providing a single entry point for multiple microservices, handling routing, authentication, rate limiting, and response aggregation.

  • API Design

    Principles and practices for designing clear, consistent, and evolvable programming interfaces that facilitate integration between systems.

Concepts