What is Microservice?
Turkish: Microservice
Microservice architecture designs a large application as small services that can be developed, deployed, and scaled independently.
What is a Microservice?
Microservice architecture splits a single application into small services organized around business capabilities. User management, payments, invoicing, notifications, and reporting can each become separate services.
Each microservice has its own codebase, release process, and often its own database. Services communicate through HTTP APIs, message queues, or event streams instead of sharing one large internal code path.
How Microservices Are Designed
- Service boundary: It should follow a business capability, not just a technical layer.
- Independent deployment: A new version of one service should be releasable without redeploying the whole system.
- Data ownership: Each service should be the source of truth for its own data; shared database coupling should be limited.
- Observability: Logs, metrics, and traces are essential for debugging distributed failures.
- Resilience: Timeouts, retries, and circuit breakers are needed because network calls can fail.
Business Use
Microservices are useful when multiple teams work on the same product, some business areas need different scaling behavior, or modules must evolve independently. In a marketplace platform, search, cart, payment, and shipping services may each scale differently.
The architecture is not automatically simpler. It adds network latency, distributed transaction concerns, version compatibility, and monitoring overhead. In many products, a well-structured modular monolith is a better starting point before splitting into services.
Microservice systems often use an API Gateway to manage external traffic and REST API conventions for predictable service communication.
Related Terms
API contract testing compares consumer expectations with provider responses through contracts such as OpenAPI or Pact.
API GatewayAn API Gateway sits between clients and services to centralize routing, authentication, quotas, observability, and versioning.
Backend for FrontendA BFF creates a separate backend layer for web, mobile, or other interfaces, shaping API responses for each client.
Circuit BreakerThe circuit breaker pattern stops calls to failing dependencies temporarily, preventing cascading failures and wasted resources.
DDD (Domain-Driven Design)DDD models complex business domains through domain language, bounded contexts, and software structures aligned with real rules.
Distributed TracingDistributed tracing follows a request across services with a trace identifier, showing where latency, errors, or retries occur.
GraphQL FederationGraphQL Federation combines independently owned schemas so multiple teams can expose one unified GraphQL supergraph.
KubernetesKubernetes orchestrates containerized services across server clusters, handling deployment, scaling, updates, and recovery.
Load BalancerA load balancer distributes incoming network traffic across multiple servers to ensure high availability and performance.
REST APIA REST API designs web services around resources and HTTP methods, making integrations predictable across web and mobile systems.