I’ve been writing the system design newsletter for 12 months. Here are the 5 most popular ones: ?? 1. From 0 to Millions: A Guide to Scaling Your App 2. A Crash Course in Caching 3. API Architectural Styles 4. How does ChatGPT work? 5. 8 Data Structures That Power Your Databases Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/3FEGliw .
ByteByteGo
软件开发
San Francisco,California 587,330 位关注者
Weekly system design newsletter you can read in 10 mins.
关于我们
A popular weekly newsletter covering topics and trends in large-scale system design, from the authors of the best-selling System Design Interview series.
- 网站
-
https://blog.bytebytego.com/
ByteByteGo的外部链接
- 所属行业
- 软件开发
- 规模
- 1 人
- 总部
- San Francisco,California
- 类型
- 私人持股
地点
-
主要
US,California,San Francisco,94103
ByteByteGo员工
-
Sahn Lam
Coauthor of the Bestselling 'System Design Interview' Series | Cofounder at ByteByteGo
-
Hua Li
FinTech Consulting, Training & Content Strategy|500k+ Newsletter |Founding Member at ByteByteGo|Executive Director in financial sector|Director in…
-
Govardhana Miriyala Kannaiah
Founder @NeuVeu | I help businesses with Digital and Cloud Transformation Consulting | 40,000+ Cloud Native geeks read my FREE newsletter
-
Shaun Gunawardane
Author of Coding Interview Patterns | Co-Founder of RSP
动态
-
Can a web server provide real-time updates?? ? An HTTP server cannot automatically initiate a connection to a browser. As a result, the web browser is the initiator. What should we do next to get real-time updates from the HTTP server?? ? Both the web browser and the HTTP server could be responsible for this task.? ? ??Web browsers do the heavy lifting: short polling or long polling. With short polling, the browser will retry until it gets the latest data. With long polling, the HTTP server doesn’t return results until new data has arrived.? ??HTTP server and web browser cooperate: WebSocket or SSE (server-sent event). In both cases, the HTTP server could directly send the latest data to the browser after the connection is established. The difference is that SSE is uni-directional, so the browser cannot send a new request to the server, while WebSocket is fully-duplex, so the browser can keep sending new requests.? ? ?? Over to you: of the four solutions (long polling, short polling, SSE, WebSocket), which ones are commonly used, and for what use cases? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
Caching is one of the ???????? ???????????????? used techniques when building fast online systems. When using a cache, here are the top 5 things to consider:? ? ???????????????? ??????????????????:? - In-memory solution? - Read heavy system? - Data is not frequently updated? ? ?????????????? ????????????????????:? - Cache aside? - Write-through? - Read-through? - Write-around? - Write-back? ? ?????????? ???????????????? ????????????????????:? - Least Recently Used (LRU)? - Least Frequently Used (LFU)? - First-in First-out (FIFO)? - Random Replacement (RR)? ? ?????? ??????????????:? - Cache Hit Ratio? - Latency? - Throughput? - Invalidation Rate? - Memory Usage? - CPU usage? - Network usage? ? ?????????? ????????????:? - Thunder herd on cold start? - Time-to-live (TTL)? ? Over to you - Did we miss anything important? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
Cloud Load Balancer Cheat Sheet Efficient load balancing is vital for optimizing the performance and availability of your applications in the cloud. However, managing load balancers can be overwhelming, given the various types and configuration options available. In today's multi-cloud landscape, mastering load balancing is essential to ensure seamless user experiences and maximize resource utilization, especially when orchestrating applications across multiple cloud providers. Having the right knowledge is key to overcoming these challenges and achieving consistent, reliable application delivery. In selecting the appropriate load balancer type, it's essential to consider factors such as application traffic patterns, scalability requirements, and security considerations. By carefully evaluating your specific use case, you can make informed decisions that enhance your cloud infrastructure's efficiency and reliability. This Cloud Load Balancer cheat sheet would help you in simplifying the decision-making process and helping you implement the most effective load balancing strategy for your cloud-based applications. Over to you: What factors do you believe are most crucial in choosing the right load balancer type for your applications? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
HTTP Status Code You Should Know The response codes for HTTP are divided into five categories: Informational (100-199) Success (200-299) Redirection (300-399) Client Error (400-499) Server Error (500-599) These codes are defined in RFC 9110. To save you from reading the entire document (which is about 200 pages), here is a summary of the most common ones: Over to you: HTTP status code 401 is for Unauthorized. Can you explain the difference between authentication and authorization, and which one does code 401 check for? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
18 Key Design Patterns Every Developer Should Know Patterns are reusable solutions to common design problems, resulting in a smoother, more efficient development process. They serve as blueprints for building better software structures. These are some of the most popular patterns: - Abstract Factory: Family Creator - Makes groups of related items. - Builder: Lego Master - Builds objects step by step, keeping creation and appearance - Prototype: Clone Maker - Creates copies of fully prepared examples. - Singleton: One and Only - A special class with just one instance. - Adapter: Universal Plug - Connects things with different interfaces. - Bridge: Function Connector - Links how an object works to what it does. - Composite: Tree Builder - Forms tree-like structures of simple and complex parts. - Decorator: Customizer - Adds features to objects without changing their core. - Facade: One-Stop-Shop - Represents a whole system with a single, simplified interface. - Flyweight: Space Saver - Shares small, reusable items efficiently. - Proxy: Stand-In Actor - Represents another object, controlling access or actions. - Chain of Responsibility: Request Relay - Passes a request through a chain of objects until handled. - Command: Task Wrapper - Turns a request into an object, ready for action. - Iterator: Collection Explorer - Accesses elements in a collection one by one. - Mediator: Communication Hub - Simplifies interactions between different classes. - Memento: Time Capsule - Captures and restores an object's state. - Observer: News Broadcaster - Notifies classes about changes in other objects. - Visitor: Skillful Guest - Adds new operations to a class without altering it. -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
Proxy Vs reverse proxy A forward proxy is a server that sits between user devices and the internet. A forward proxy is commonly used for:? - Protect clients - Avoid browsing restrictions - Block access to certain content A reverse proxy is a server that accepts a request from the client, forwards the request to web servers, and returns the results to the client as if the proxy server had processed the request. A reverse proxy is good for: - Protect servers - Load balancing - Cache static contents - Encrypt and decrypt SSL communications -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
ByteByteGo转发了
Big Archive for System Design – 2024 Edition (Completely Free) is now available! The PDF contains ?????? of our technical posts with diagrams published in 2024. What’s included in the PDF? - REST API Vs. GraphQL - Linux file system explained - My recommended materials for cracking your next technical interview - How Git Commands work - Top 4 Most Popular Use Cases for UDP - How Does a Typical Push Notification System Work? - How can Cache Systems go wrong? 20 - REST API Cheatsheet - Top 8 Programming Paradigms - Data Pipelines - API Vs SDK - Key Use Cases for Load Balancers - And many hundreds more If you like the idea, please like and comment on the post to help it reach a wider audience. Thank you! -- Subscribe to our newsletter to receive the PDF download link. It’s also available in the top pinned post on our newsletter page:? https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
Understanding Database Types To make the best decision for our projects, it is essential to understand the various types of databases available in the market. We need to consider key characteristics of different database types, including popular options for each, and compare their use cases. -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-
-
Data is cached everywhere, from the front end to the back end! This diagram illustrates where we cache data in a typical architecture. There are ???????????????? ???????????? along the flow. 1. Client apps: HTTP responses can be cached by the browser. We request data over HTTP for the first time, and it is returned with an expiry policy in the HTTP header; we request data again, and the client app tries to retrieve the data from the browser cache first. 2. CDN: CDN caches static web resources. The clients can retrieve data from a CDN node nearby. 3. Load Balancer: The load Balancer can cache resources as well. 4. Messaging infra: Message brokers store messages on disk first, and then consumers retrieve them at their own pace. Depending on the retention policy, the data is cached in Kafka clusters for a period of time. 5. Services: There are multiple layers of cache in a service. If the data is not cached in the CPU cache, the service will try to retrieve the data from memory. Sometimes the service has a second-level cache to store data on disk. 6. Distributed Cache: Distributed cache like Redis hold key-value pairs for multiple services in memory. It provides much better read/write performance than the database. 7. Full-text Search: we sometimes need to use full-text searches like Elastic Search for document search or log search. A copy of data is indexed in the search engine as well. 8. Database: Even in the database, we have different levels of caches: - WAL(Write-ahead Log): data is written to WAL first before building the B tree index - Bufferpool: A memory area allocated to cache query results - Materialized View: Pre-compute query results and store them in the database tables for better query performance - Transaction log: record all the transactions and database updates - Replication Log: used to record the replication state in a database cluster Over to you: With the data cached at so many levels, how can we guarantee the ?????????????????? ???????? ???????? is completely erased from the systems? -- Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://bit.ly/bbg-social ? #systemdesign #coding #interviewtips? .
-