mirror of
https://github.com/ByteByteGoHq/system-design-101.git
synced 2026-04-01 16:57:23 -04:00
This PR adds all the guides from [Visual Guides](https://bytebytego.com/guides/) section on bytebytego to the repository with proper links. - [x] Markdown files for guides and categories are placed inside `data/guides` and `data/categories` - [x] Guide links in readme are auto-generated using `scripts/readme.ts`. Everytime you run the script `npm run update-readme`, it reads the categories and guides from the above mentioned folders, generate production links for guides and categories and populate the table of content in the readme. This ensures that any future guides and categories will automatically get added to the readme. - [x] Sorting inside the readme matches the actual category and guides sorting on production
51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
---
|
|
title: "9 Essential Components of a Production Microservice Application"
|
|
description: "Explore 9 key components for building robust microservice applications."
|
|
image: "https://assets.bytebytego.com/diagrams/0020-9-essential-components-of-production-microservice-app.png"
|
|
createdAt: "2024-03-04"
|
|
draft: false
|
|
categories:
|
|
- software-architecture
|
|
tags:
|
|
- Microservices
|
|
- Architecture
|
|
---
|
|
|
|

|
|
|
|
## 1. API Gateway
|
|
|
|
The gateway provides a unified entry point for client applications. It handles routing, filtering, and load balancing.
|
|
|
|
## 2. Service Registry
|
|
|
|
The service registry contains the details of all the services. The gateway discovers the service using the registry. For example, Consul, Eureka, Zookeeper, etc.
|
|
|
|
## 3. Service Layer
|
|
|
|
Each microservice serves a specific business function and can run on multiple instances. These services can be built using frameworks like Spring Boot, NestJS, etc.
|
|
|
|
## 4. Authorization Server
|
|
|
|
Used to secure the microservices and manage identity and access control. Tools like Keycloak, Azure AD, and Okta can help over here.
|
|
|
|
## 5. Data Storage
|
|
|
|
Databases like PostgreSQL and MySQL can store application data generated by the services.
|
|
|
|
## 6. Distributed Caching
|
|
|
|
Caching is a great approach for boosting the application performance. Options include caching solutions like Redis, Couchbase, Memcached, etc.
|
|
|
|
## 7. Async Microservices Communication
|
|
|
|
Use platforms such as Kafka and RabbitMQ to support async communication between microservices.
|
|
|
|
## 8. Metrics Visualization
|
|
|
|
Microservices can be configured to publish metrics to Prometheus and tools like Grafana can help visualize the metrics.
|
|
|
|
## 9. Log Aggregation and Visualization
|
|
|
|
Logs generated by the services are aggregated using Logstash, stored in Elasticsearch, and visualized with Kibana.
|