Microservices
Microservices is an architectural style that structures an application as a collection of small, independently deployable services, each owning a single business capability and communicating over well-defined APIs.
95 resources across 3 libraries
Glossary Terms(25)
Go
Go (or Golang) is an open-source, statically typed, compiled programming language created by Google in 2009. It emphasizes simplicity, fast compilation, and bu…
Micro Frontends
Micro frontends is an architectural pattern that decomposes a web application's frontend into smaller, independently developed and deployed pieces, often owned…
gRPC-Web
gRPC-Web is a JavaScript client library and protocol that lets browser-based applications call gRPC services, working around the fact that browsers cannot make…
API Gateway
An API Gateway is a server that sits in front of one or more backend services, acting as a single entry point that handles routing, authentication, rate limiti…
BFF (Backend for Frontend)
Backend for Frontend (BFF) is an architectural pattern where a dedicated backend layer is built specifically for one client application or client type, tailori…
Microservices
Microservices is an architectural style that structures an application as a collection of small, independently deployable services, each owning a single busine…
Monolithic Architecture
Monolithic architecture is a software design approach where an entire application — its user interface, business logic, and data access layer — is built and de…
Event-Driven Architecture
Event-driven architecture (EDA) is a software design pattern in which components communicate by producing and consuming events — notifications that something h…
CQRS
CQRS (Command Query Responsibility Segregation) is an architectural pattern that separates the operations that change data (commands) from the operations that…
Saga Pattern
The Saga Pattern is a way of managing data consistency across multiple services in a distributed transaction by breaking it into a sequence of local transactio…
Circuit Breaker Pattern
The Circuit Breaker Pattern is a resilience design pattern that stops an application from repeatedly calling a service that is likely to fail, allowing it to r…
Vue Router
Vue Router is the official routing library for Vue.js, enabling single-page applications to map URLs to components, manage navigation, and handle nested and dy…
Data Mesh
Data mesh is a decentralized data architecture and organizational approach in which domain teams own and serve their own data as discoverable, self-service 'da…
Cloud-Native
Cloud-native describes applications and systems that are designed from the ground up to run in dynamic cloud environments, typically built as loosely coupled,…
Honeycomb
Honeycomb is an observability platform built around high-cardinality, high-dimensionality event data, allowing engineers to ask arbitrary questions about produ…
Kong Gateway
Kong Gateway is an open-source API gateway built on top of Nginx and OpenResty, used to manage, secure, and route traffic to APIs and microservices.
Zuul
Zuul is an open-source JVM-based edge service and API gateway originally built by Netflix to route, filter, and monitor traffic entering its microservices arch…
Chaos Engineering
Chaos engineering is the practice of deliberately injecting controlled failures into a system — killing servers, dropping network traffic, adding latency — to…
Container Orchestration
Container orchestration is the automated management of containerized applications at scale — scheduling containers onto machines, restarting failed ones, scali…
Service Mesh
A service mesh is a dedicated infrastructure layer, typically implemented as lightweight network proxies deployed alongside each service, that handles service-…
Distributed Tracing
Distributed tracing is a method for tracking a single request as it flows through multiple services in a distributed system, recording the timing and outcome o…
Client-Server Architecture
Client-server architecture is a computing model in which client programs request services or resources, and server programs listen for those requests and respo…
Load Balancing Algorithm
A load balancing algorithm is a strategy used to distribute incoming network traffic or computational work across multiple servers or resources, aiming to opti…
Mediator Pattern
The Mediator Pattern is a behavioral design pattern that centralizes communication between a set of interacting objects into a single mediator object, so those…
Showing 24 of 25.
Study Notes(16)
Containerizing Microservices
Learn how to package microservices into efficient, portable container images using Dockerfiles, multi-stage builds, and layer caching.
gRPC for Microservices
Explore how gRPC uses Protocol Buffers and HTTP/2 to deliver fast, strongly typed, streaming-capable communication between internal microservices.
Message Brokers in Microservices
Learn how message brokers like RabbitMQ and Kafka durably deliver messages between services, the difference between queues and topics, and delivery guarantees.
Microservices Design Principles
Core design principles for building maintainable microservices: single responsibility, loose coupling, API contracts, and failure isolation.
Microservices Interview Questions
The core system-design and conceptual questions interviewers use to probe real microservices experience, with the reasoning behind strong answers.
Microservices Quick Reference
A condensed cheat sheet of the core microservices patterns, communication styles, and resilience mechanisms for fast review before a design discussion or inter…
Monolith vs Microservices
A practical comparison of monolithic and microservices architectures across deployment, scaling, data management, and team structure.
Observability in Microservices
How to understand the internal state of a distributed system from the logs, metrics, and traces it produces, so you can debug failures you never anticipated.
Orchestrating Microservices with Kubernetes
Learn how Kubernetes deploys, scales, heals, and load-balances containerized microservices using Deployments, Services, and self-healing controllers.
Rate Limiting in Microservices
Techniques for controlling how many requests a client, service, or tenant can make in a given time window to protect capacity and ensure fair usage.
Testing Microservices
How the test pyramid, contract testing, and chaos experiments combine to give confidence in a system made of many independently deployed services.
What Are Microservices?
An introduction to microservices architecture: small, independently deployable services that communicate over the network to form a larger application.
When to Use Microservices
A decision framework for choosing microservices over a monolith, based on team size, scaling needs, and organizational readiness.
Building Microservices with Spring Boot
How to design, discover, secure, and make resilient a set of independently deployable Spring Boot services using Spring Cloud.
Monolith vs Microservices
Compares monolithic and microservices architectures across deployment, scaling, communication, complexity, and failure isolation.
Microservices in the Cloud
See how managed containers, serverless platforms, service discovery, and API gateways make cloud-native microservices practical to build and operate.
Interview Questions(54)
What is the Saga Pattern in Microservices?
The Saga pattern manages a business transaction that spans multiple microservices by breaking it into a sequence of local transactions, where each step publish…
What is the Database-per-Service Pattern in Microservices?
The database-per-service pattern means each microservice owns its own private database that no other service is allowed to access directly, so services communi…
API Composition vs Database Joins: How Do They Differ?
A database join combines rows from multiple tables in a single database engine using one SQL statement, while API composition assembles a result by calling mul…
What is the CQRS Pattern and When Should You Use It?
CQRS (Command Query Responsibility Segregation) splits the logic and often the data models used for writing data (commands) from the logic and models used for…
Observer vs Pub/Sub Pattern
The Observer pattern is a direct, in-process relationship where a Subject holds references to its Observers and notifies them synchronously, while Publish/Subs…
What is a Unikernel and How Does it Differ from a Traditional OS?
A unikernel is a single-address-space machine image that compiles an application together with only the specific library-level OS components it needs — network…
What is an API Gateway (from a Networking Perspective)?
An API gateway is a single, network-facing entry point that sits in front of a collection of backend services and handles cross-cutting request concerns — rout…
What is a Service Mesh (from a Networking Perspective)?
A service mesh is a dedicated infrastructure layer that manages service-to-service communication inside a microservices system by attaching a lightweight netwo…
What is an API Gateway?
An API gateway is a single entry point that sits in front of a system’s backend services, routing client requests to the right service while centrally handling…
What is a Microservices Architecture?
A microservices architecture structures an application as a collection of small, independently deployable services, each owning a specific business capability…
Monolith vs Microservices: What Is the Difference?
A monolith is a single, unified codebase and deployment unit for an entire application, while microservices split that same application into many small, indepe…
How Would You Design Slack?
Design Slack as a set of channel-partitioned messaging services backed by persistent WebSocket (or long-poll fallback) connections, a fanout write path that ap…
What is the Saga Pattern?
The saga pattern breaks a distributed transaction into a sequence of local transactions, each owned by a different service, where every step has a correspondin…
What is Database Federation and When Do You Use It?
Database federation splits a single monolithic database into multiple smaller databases organized by function or domain (such as one database per service or bu…
What is Service Discovery in Microservices?
Service discovery is the mechanism by which services in a distributed system automatically find the current network location of other services, since instances…
How Would You Design a Service Mesh for Microservices?
A service mesh design places a lightweight network proxy (a sidecar) next to every service instance to intercept all traffic, so cross-cutting concerns like mu…
What is the Sidecar Pattern in Microservices?
The sidecar pattern deploys a helper process alongside a main application container, sharing its lifecycle and network namespace, so that cross-cutting infrast…
How Do You Version an API at Scale?
API versioning is the discipline of introducing breaking changes without disrupting existing clients, typically by embedding a version marker in the URL path,…
GraphQL vs REST at Scale: How Do You Choose?
REST exposes fixed, resource-shaped endpoints that are simple to cache and operate at scale, while GraphQL exposes a single endpoint with a flexible query lang…
What is Distributed Tracing and Why Is It Needed?
Distributed tracing tracks a single request as it flows across many microservices by propagating a shared trace ID and recording timed spans at each hop, letti…
What are Distributed Transactions and How Do They Work?
A distributed transaction is a set of operations spanning multiple independent services or databases that must all succeed or all fail together, typically coor…
What is the Outbox Pattern?
The outbox pattern solves the dual-write problem by writing both a business state change and the event describing it into the same local database transaction,…
API Gateway vs Load Balancer: What Is the Difference?
A load balancer distributes incoming traffic across multiple identical instances of a single service to spread load and provide failover, while an API gateway…
What is the Bulkhead Pattern in Microservices?
The bulkhead pattern isolates resources — thread pools, connection pools, or entire service instances — into separate partitions per dependency, so that a fail…
Showing 24 of 54.