githubEdit

Microservices

An architectural style that structures an application as a collection of loosely coupled, independently deployable services.

An architectural style that structures an application as a collection of services that are highly maintainable and testable, loosely coupled, independently deployable, and organized around business capabilities.

Each microservice runs in its own process, owns its data, and communicates with other services through well-defined APIs -- typically REST or gRPC. Teams can develop, test, deploy, and scale individual services independently, using different programming languages and data stores as appropriate for each service's requirements.

Microservices architectures rely heavily on API gateways. The gateway serves as a single entry point for clients, routing requests to the appropriate microservice and aggregating responses when a client request requires data from multiple services. Without a gateway, clients would need to know the location and interface of each individual service, creating tight coupling. The gateway also provides cross-cutting concerns like authentication, rate limiting, and logging that apply uniformly across all services, avoiding duplication of this logic in each microservice.

Last updated