Microservices
An architectural pattern that structures an application as a collection of loosely coupled, independently deployable services, each responsible for a specific business capability.
Microservices decompose a monolithic application into small, focused services that communicate over APIs. Each service owns its data, can be deployed independently, and can use different technology stacks. An e-commerce platform might have separate services for user authentication, product catalog, recommendations, payments, and order management.
The benefits include independent scaling (scale only the services under load), independent deployment (ship changes to one service without redeploying everything), and team autonomy (each team owns and operates their services end-to-end). This architecture enables organizations to move faster as they grow.
The trade-offs are real. Microservices introduce distributed systems complexity: network latency between services, eventual consistency challenges, distributed debugging difficulty, and operational overhead from managing many services. Most teams should start with a well-structured monolith and extract microservices only when specific scaling or organizational needs justify the complexity.
Related Terms
A/B Testing
A controlled experiment comparing two or more variants to determine which performs better on a defined metric, using statistical methods to ensure reliable results.
Feature Flag
A software mechanism that enables or disables features at runtime without deploying new code, used for gradual rollouts, A/B testing, and targeting specific user segments.
MLOps
The set of practices combining machine learning, DevOps, and data engineering to reliably deploy, monitor, and maintain ML models in production.
Model Serving
The infrastructure and systems that host trained ML models and handle inference requests in production, optimizing for latency, throughput, and cost.
Semantic Search
Search that understands the meaning and intent behind a query rather than just matching keywords, typically powered by embedding-based similarity comparison.
CI/CD (Continuous Integration / Continuous Deployment)
An automated software practice where code changes are continuously integrated into a shared repository, tested, and deployed to production, reducing manual intervention and accelerating delivery cycles.