System Design Strategy Design Pattern in Software Design [Java] The Strategy Pattern is a behavioral design pattern that falls under the Gang of Four's (GoF) design patterns. It provides a systematic way to define a family of algorithms, encapsulate each algorithm, and make them interchangeable.
System Design Vector Databases: Long-term Memory of LLMs In the rapidly evolving landscape of artificial intelligence, Large Language Models (LLMs) have become the cornerstone of various applications, from natural language processing to content generation.
Software Engineering Wirth's Law: Optimizing Software for Virtual Memory In the ever-evolving landscape of computing, Wirth's Law serves as a thought-provoking observation on the intricate relationship between hardware and software performance.
System Design 3 Types of Cache Misses: Compulsory, Capacity and Conflict Miss In this article at OpenGenus.org, we will discuss the 3 types of cache misses- namely, compulsory, conflict and capacity misses.
System Design Library Management System using Binary Search Tree (BST) [with source code] In this article at OpenGenus.org, we will guide you through the creation of a Library Management System (LMS) using the Binary Search Tree (BST) data structure.
Software Engineering Write through and write back Write-through and write-back are two working methods of buffer memory. Whenever the processor wants to write a word, it checks to see if the address where it wants to write the data exists in the cache.
Algorithms Rendezvous hashing Rendezvous hashing was invented by David Thaler and Chinya Ravishankar at the University of Michigan in 1996.
Software Engineering Amdahl’s law Amdahl's law was presented by a computer scientist named Gene Amdahl at the American Federation of Information processing Societies (AFIPS) Spring Joint Computer conference in 1967, From there it got its name.
System Design Pareto Principle in Computer Science and Software Development In this article at OpenGenus, we'll explore how the Pareto Principle is applied in these fields, delve into the concept of the Pareto Distribution, and discuss its profound significance in the realm of software development.
System Design Canary and Rolling Deployments strategies explained A deployment strategy is a way to change or upgrade an application with the aim of no perceptible downtime i.e. Rolling and Canary Deployment.
System Design System Design of an Incident Response Platform In this article at OpenGenus, we'll discuss how to go about creating an Incident Response Platform, whose role is that of mitigating the impact of cybersecurity incidents.
System Design System design of Code Deployment System This article's topic is the system design of a code deployment system. The main task of such a product is to deploy code from development to production environments efficiently and reliably, as well as manage code changes when they happen.
System Design System design of a Grocery System (Amazon Fresh / BigBasket/ JioMart) This article aims to discuss how one would go about designing a large scope distributed system such as Amazon Fresh or BigBasket or Flipkart Grocery or JioMart or DMart. We will go over requirements, capacity estimates, database solutions, APIs and components.
System Design Efficiency Paradox: Understanding Brooks' Law in Software Engineering A reminder that simply increasing team size is not a guaranteed solution to accelerate the completion of a late software project. Effective project management, proper planning, and addressing underlying issues are often more effective approaches to mitigate delays.
Software Engineering Command Query Separation Command Query Separation (CQS) is a design concept that emphasizes categorizing methods or functions into two clear groups: actions that do something (commands) and those that provide information (queries).
System Design Data Pipeline In this article at OpenGenus, we will learn about the concept of Data Pipeline. Data pipelines route raw data from various sources to destination for analysis or visualization.
System Design Data Mart In this article at OpenGenus, we will learn about the concept of a Data Mart. A data mart is a simplified or condensed version of a data warehouse. It has faster data retrieval and provides data required by a specific department or line of business within an organization.
System Design Law of Demeter In this article at OpenGenus, we will be discussing an Object Oriented Programming principle called the Law of Demeter.
Software Engineering SOLID Principles: The Foundation of Robust Object-Oriented Design In this article at OpenGenus, we will dive deep into SOLID principles and illustrate them with practical code examples.
System Design Data Lake In this article at OpenGenus, we will learn about the concept of Data Lake. A data lake is a centralized storage repository that holds big data from many sources in different formats.
System Design 9 Different Types of Deployment Strategies Deployment strategies are used in software development to successfully implement and upload newly updated versions of software. The type of strategy used depends on the complexity of the application, the main objective, the urgency of the update, and the level of expertise the team.
Algorithms Israeli Queue The Israeli Queue is also a variation for the priority queue because elements in it also have priority. However, the priority is determined by their "friendship" with a friend.
System Design Monolithic and Microservices If you have been doing some cool projects or were working in an organization which is large in size, microservices would be up your sleeves. To the college grads and enthusiasts, In today's article in OpenGenus, we would go indepths of monolithic architecture and microservices architecture.
System Design System Design of Train Reservation System In this article at OpenGenus, we will discuss the system design of a train reservation system, covering the functional and non-functional requirements, projected number of users, database design, main class designs, and a prospective system design.
System Design Choking Algorithm in BitTorrent One key element that makes BitTorrent powerful is that it has an algorithm for managing connections between peers. This algorithm is called Choke Algorithm.