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
1.5 KiB
1.5 KiB
title, description, image, createdAt, draft, categories, tags
| title | description | image | createdAt | draft | categories | tags | |||
|---|---|---|---|---|---|---|---|---|---|
| 10 Essential Components of a Production Web Application | Explore 10 key components for building robust web applications. | https://assets.bytebytego.com/diagrams/0395-typical-architecture-of-a-web-application.png | 2024-02-20 | false |
|
|
- It all starts with CI/CD pipelines that deploy code to the server instances. Tools like Jenkins and GitHub help over here.
- The user requests originate from the web browser. After DNS resolution, the requests reach the app servers.
- Load balancers and reverse proxies (such as Nginx & HAProxy) distribute user requests evenly across the web application servers.
- The requests can also be served by a Content Delivery Network (CDN).
- The web app communicates with backend services via APIs.
- The backend services interact with database servers or distributed caches to provide the data.
- Resource-intensive and long-running tasks are sent to job workers using a job queue.
- The full-text search service supports the search functionality. Tools like Elasticsearch and Apache Solr can help here.
- Monitoring tools (such as Sentry, Grafana, and Prometheus) store logs and help analyze data to ensure everything works fine.
- In case of issues, alerting services notify developers through platforms like Slack for quick resolution.
