Computer ScienceNetworking & SystemsMedium

Microservices Architecture

Also known as:Service-Oriented Architecture (fine-grained)MSAMicroservice Pattern

Microservices architecture is a software design approach where an application is structured as a collection of small, independently deployable services, each responsible for a specific business capability and communicating over well-defined APIs. Unlike monolithic architectures where all components share a single codebase and runtime, microservices can be developed, deployed, and scaled independently using different programming languages and data stores. This pattern enables large engineering teams to work in parallel, improves fault isolation, and supports continuous delivery pipelines at scale.

Microservices vs Monolithic Architecture

AspectMicroservicesMonolith
DeploymentIndependent per serviceWhole app redeployed
ScalabilityScale individual servicesScale entire application
Technology StackPolyglot (mixed)Single unified stack
Fault IsolationOne service fails, others runOne bug can crash all
Team OwnershipSmall teams per serviceShared large codebase
ComplexityHigher operational overheadSimpler to develop initially

Interactive Tools

Kubernetes

Open Tool

Docker Hub

Open Tool

Martin Fowler's Microservices Guide

Open Tool
Diagram showing microservices architecture with independently deployable service components

Wikimedia Commons, CC BY-SA

Related Terms

Computer Science

Docker

Docker is an open-source platform that uses OS-level virtualization to package applications and their dependencies into lightweight, portable units called containers, ensuring consistent execution across any computing environment. Unlike virtual machines that emulate entire hardware stacks, Docker containers share the host OS kernel and isolate the application's filesystem, processes, and network using Linux namespaces and cgroups. Docker has revolutionized software delivery by enabling the "build once, run anywhere" paradigm, drastically reducing environment-related deployment failures.

Computer Science

Kubernetes

Kubernetes (K8s) is an open-source container orchestration system originally developed by Google that automates the deployment, scaling, load balancing, and self-healing of containerized applications across clusters of machines. It abstracts the underlying infrastructure, allowing developers to declare desired application state (via YAML manifests) while Kubernetes continuously reconciles the actual state to match. Kubernetes has become the de facto standard for running production-grade microservices workloads, supported by all major cloud providers (AWS EKS, Google GKE, Azure AKS).

Computer Science

REST API

REST (Representational State Transfer) API is an architectural style for designing networked applications that uses HTTP requests to perform CRUD operations on resources identified by URLs. It enforces stateless communication, meaning each request from a client must contain all information needed to process it, with no session state stored on the server. REST APIs are the backbone of modern web services, enabling interoperability between frontend clients, mobile apps, and backend services.

The term "microservices" emerged around 2011–2012 in the software architecture community, popularized by James Lewis and Martin Fowler. "Micro" (Greek: mikros, small) emphasizes the fine-grained decomposition of application functionality into minimal, focused units.

microservicesarchitecturedistributed-systemsdevopsscalabilitybackend