From 895ac0f15530d3047f95d6dfac83b04cdbf0d1c4 Mon Sep 17 00:00:00 2001 From: Amogha Kancharla <133768988+amoghakancharla@users.noreply.github.com> Date: Fri, 2 Feb 2024 18:59:46 +0530 Subject: [PATCH] Update README.md (#10228) Added answers to the questions in "System Design" Co-authored-by: Amogha Kancharla <133768988+amoghak-ds@users.noreply.github.com> --- README.md | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f45786c..6a0b10e 100644 --- a/README.md +++ b/README.md @@ -3315,7 +3315,9 @@ Bonus: extract the last word of each line ## System Design
-Explain what is a "Single point of failure"?
+Explain what a "single point of failure" is.
+A "single point of failure", in a system or organization, if it were to fail would cause the entire system to fail or significantly disrupt it's operation. In other words, it is a vulnerability where there +is no backup in place to compensate for the failure.
@@ -3342,10 +3344,34 @@ In multi-CDN, content is distributed across multiple different CDNs, each might
Explain "3-Tier Architecture" (including pros and cons)
+A "3-Tier Architecture" is a pattern used in software development for designing and structuring applications. It divides the application into 3 interconnected layers: Presentation, Business logic and Data storage. +PROS: +* Scalability +* Security +* Reusability +CONS: +* Complexity +* Performance overhead +* Cost and development time
-Explain Mono-repo vs. Multi-repo. What are the cons and pros of each approach?
+Explain Mono-repo vs. Multi-repo.What are the cons and pros of each approach?
+In a Mono-repo, all the code for an organization is stored in a single,centralized repository. +PROS (Mono-repo): +* Unified tooling +* Code Sharing +CONS (Mono-repo): +* Increased complexity +* Slower cloning + +In a Multi-repo setup, each component is stored in it's own separate repository. Each repository has it's own version control history. +PROS (Multi-repo): +* Simpler to manage +* Different teams and developers can work on different parts of the project independently, making parallel development easier. +CONS (Multi-repo): +* Code duplication +* Integration challenges
@@ -3354,6 +3380,7 @@ In multi-CDN, content is distributed across multiple different CDNs, each might * Not suitable for frequent code changes and the ability to deploy new features * Not designed for today's infrastructure (like public clouds) * Scaling a team to work monolithic architecture is more challenging +* If a single component in this architecture fails, then the entire application fails.
@@ -3365,16 +3392,17 @@ In multi-CDN, content is distributed across multiple different CDNs, each might
What's a service mesh?
- -[This article](https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh) provides a great explanation. +It is a layer that facilitates communication management and control between microservices in a containerized application. It handles tasks such as load balancing, encryption, and monitoring.
Explain "Loose Coupling"
+In "Loose Coupling", components of a system communicate with each other with a little understanding of each other's internal workings. This improves scalability and ease of modification in complex systems.
What is a message queue? When is it used?
+It is a communication mechanism used in distributed systems to enable asynchronous communication between different components. It is generally used when the systems use a microservices approach.
#### Scalability