systemdesign

8 System Design Couress to learn Distributed System Architecture (2025)

8 System Design Couress to learn Distributed System Architecture (2025)

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. credit - exponent Hello friends, if you want to learn Software Architecture and System design in 2025 and are looking for the best resources then you will be happy to know that  I will share the 8 best Udemy courses to learn System Design and Distributed System Architecture for 2025. If you are preparing for technical interviews for a Software Engineering job, you may be aware of Software or System design. It is one of the…
Read More
System Design: SQL vs NoSQL databases and what distinguishes them.

System Design: SQL vs NoSQL databases and what distinguishes them.

In the realm of databases, two primary types of solutions exist, SQL (relational) and NoSQL (non-relational) databases. These two categories differ significantly in their construction, the nature of the data they store, and their storage methods. Relational databases are structured with predefined schemas, while non-relational databases are unstructured, distributed, and feature dynamic schemas. High-level differences Here are some high-level differences between SQL and NoSQL: Storage SQL stores data in tables where each row represents an entity, and each column represents a data point related to that entity. NoSQL databases utilize various data storage models, including key-value, graph, and document-oriented approaches.…
Read More
What is Load Balancing ?

What is Load Balancing ?

Hi There, This is a comprehensive post about load balancing, a crucial concept in system design. What is Load Balancing? Load balancing is a critical component of modern web architecture. It refers to the process of distributing incoming network traffic across multiple servers to ensure no single server bears too much demand. This practice is essential for maintaining high availability and reliability of web services. Initially, when a company starts, it might have just one server handling all requests. However, as the company grows and the number of client requests increases, a single server may no longer be sufficient. To…
Read More
Why BookMyShow “Failed” but Hotstar Succeeded – A System Design Perspective

Why BookMyShow “Failed” but Hotstar Succeeded – A System Design Perspective

I've seen a lot of people asking why BookMyShow struggled during events like the Coldplay concert, while platforms like Hotstar seem to manage massive traffic, especially during big cricket matches. To answer that, we need to understand this from a system design and infrastructure perspective—and it's not exactly a fair comparison. Apples to Oranges: Read-heavy vs Write-heavy Systems Hotstar and BookMyShow are fundamentally different in how they handle user interaction. Hotstar is read-heavy, where millions of users are simply streaming content (reading data). On the other hand, BookMyShow is write-heavy during high-demand events like concert ticket sales, with a surge…
Read More
System Design: CAP Theorem

System Design: CAP Theorem

Imagine you and a friend are watching the same live football match but on different devices. One device shows the final whistle has blown, while the other still displays a tense final minute on the clock. Frustrating, right? This seemingly simple scenario highlights a fundamental concept in distributed systems: the CAP theorem. Before we dive deeper into trade-offs and debates regarding the CAP theorem let's first understand what CAP stands for: consistency: consistency in CAP theorem(different than the consistency in ACID) stands for the guarantee that the read receives the most recent write. Availability: Guarantee that a read returns data…
Read More
DESIGN PATTERNS : A Deep Dive into Common Design Patterns

DESIGN PATTERNS : A Deep Dive into Common Design Patterns

What is a design pattern? Design patterns are solutions to complex problems. Design patterns are all about crafting your classes and interfaces in a way that solves a particular design problem. Usually, while designing a system, we encounter some issues, and for those problems, we have a set of design patterns. Design patterns are generally templates that involve classes, interfaces, and the relationships between those classes. Types of design patterns: Creational design patterns: These types of patterns deal with the creation of objects in a way that is compatible with the given situation.At the creational level, we can determine how…
Read More
CAP Theorem

CAP Theorem

It is a fundamental framework for understanding trade-offs when designing distributed systems. Consistency (C): A distributed system is said to be highly consistent when every read receives the most recent write or an error. Availability (A): A distributed system is said to be highly Available when every request (Read or Write) receives a non-error response, without guarantee that it contains the most recent write Partition Tolerance (PT): A highly partition tolerant system continues to operate despite an arbitrary number of messages drop(delay) between nodes. The CAP trade-off: Choosing 2 of 3: In the presence of network partition a distributed system…
Read More
15 Best System Design Websites for Developers (2024)

15 Best System Design Websites for Developers (2024)

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. credit - Designgurus.io Hello friends, if you are preparing for software engineer interviews then you may know that System design interviews are an integral part of the hiring process for many tech companies, especially for senior and architect roles. These interviews assess your ability to design scalable, reliable, and efficient systems - skills that are essential for building modern software applications. Preparing for these interviews can be challenging due to the broad scope and complexity involved.…
Read More
9 Software Architecture Patterns for Distributed Systems

9 Software Architecture Patterns for Distributed Systems

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. image_credit - ByteByteGo Hello friends, in modern software development, distributed systems are very popular but architects and developers face the challenge of designing systems that efficiently manage data and facilitate seamless communication between various components. Architectural patterns provide proven solutions to common problems encountered in distributed systems, ensuring reliability, scalability, and maintainability. Among these patterns, some patterns stand out as fundamental for managing data and communication flow effectively, which we will see in this article. These…
Read More
10 Microservice Best Practices for Building Scalable and Resilient Apps

10 Microservice Best Practices for Building Scalable and Resilient Apps

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. credit - Design Guru Hello guys, it's no secret that Microservices have revolutionized the way we build applications, providing scalability, flexibility, and resilience, but its not easy to build Microservices which withstand test of time and test of production. To ensure the success of microservices architecture, it is crucial to follow best practices that address key challenges and promote effective development and deployment strategies. In the past, I have shared several Microservices articles like Microservices architecture…
Read More
No widgets found. Go to Widget page and add the widget in Offcanvas Sidebar Widget Area.