Skip to main content

                                             System Design




This blog can help you to Ace your next System design interview, as it contains some of the most asked components.

Some of the key concepts asked in the interview:

API Gateway: It acts as an intermediary between your application and a set of microservices, taking care of request routing, composition, protocol translation, authentication, rate limiting, and caching.

Content Delivery Network: CDN reduces latency and improves the availability of content for users by globally distributing servers that cache and serve content from multiple locations.

Data partitioning: It divides a large data set into smaller, more manageable pieces called partitions to improve the performance and scalability of a system by distributing the data across multiple servers.

Load Balancer: It distributes incoming traffic across multiple servers to prevent any single server from becoming a bottleneck, thus improving the availability, reliability, and scalability of a system.

Distributed system: Nodes can access and share the same file system, even if they are geographically dispersed, by using a distributed file system. Examples include HDFS, Amazon EFS, and Google's GCS.

Notification System: These are used to send alerts or notifications to users, such as emails, push notifications, or text messages.

Full-text search: Systems such as Elastic Search, Amazon Cloud Search, and Microsoft Azure Search use algorithms and data structures to quickly search and retrieve data from large collections of documents, web pages, or other data sources.

Meta Data Server: It is a component of a distributed file system that stores metadata about the files stored in the system. Metadata includes information such as the file name, size, creation date, and permissions. Like Hadoop NameNode, and GlusterFS Metadata.

Distributed Logging: It is a system design pattern used for capturing, storing, and analyzing log data generated by distributed systems. Distributed logging is essential for understanding and debugging complex systems consisting of multiple services running on different nodes.

Distributed tracing: It is a technique used in system design to track and monitor requests as they move through a complex distributed system. It provides visibility into how requests flow through the system, enabling developers and operations teams to identify and debug issues.

Coordination services: such as Apache ZooKeeper provide a centralized infrastructure for distributed applications. It helps to manage the configuration, synchronization, and communication of distributed processes, making it easier for developers to build complex distributed systems.

Comments

Popular posts from this blog

REACT course   Destructing the Function Parameters An object passed to the method can be accessed using dot notation instead you could use de-structuring. Ex: function addUser({name, age, gender}) {} addUser({name: 'Daniel', age: 25, gender: Male}) Spread Operator -> To pullout the values from array and add as comma separated array. Spread operator on object pulls out user key values and add it to extendUser. Ex: const extendUser = {               isAdmin: true,               ...user          };  const hobbies = ["Sports", "cooking"]; for(const hobby of hobbies) {     console.log(hobby); } Anonymous functions - No names infront of the functions const timeout = () => {},   Pass function as a value setTimeout(hadleTimeout, 2000) Reference vs primitive values -> always produce new values for primitive type For arrays like objects mutate original va...

Java Springboot Interview preparation

Interview Preparation JAVA Spring boot - Rapid Application Development @Configuration - Makes the class as a source for bean definition for the Application Context. @ComponentScan - Tells spring to look for components, services, configurations Proper Logging in Spring boot Applications spring-boot-starter-logging :  dependency already available spring-logback - is used most of the time Logger levels(error, trace., info..) logging.level.root=TRACE - can be set in application.properties Logger logger = LoggerFactory.getLogger(sample.class) logback-spring.xml  Feature of spring Framework Collection of jars and libraries 1. Lightweight 2. Non-Invasive  3. IOC  4. spring container - (creation of object, maintain the lifecycle and DI) 5. Intercepting the business logic using AOP 6. loosely coupled