You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+32-4
Original file line number
Diff line number
Diff line change
@@ -3315,7 +3315,9 @@ Bonus: extract the last word of each line
3315
3315
## System Design
3316
3316
3317
3317
<details>
3318
-
<summary>Explain what is a "Single point of failure"?</summary><br><b>
3318
+
<summary>Explain what a "single point of failure" is. </summary><br><b>
3319
+
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
3320
+
is no backup in place to compensate for the failure.
3319
3321
</b></details>
3320
3322
3321
3323
<details>
@@ -3342,10 +3344,34 @@ In multi-CDN, content is distributed across multiple different CDNs, each might
3342
3344
3343
3345
<details>
3344
3346
<summary>Explain "3-Tier Architecture" (including pros and cons)</summary><br><b>
3347
+
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.
3348
+
PROS:
3349
+
* Scalability
3350
+
* Security
3351
+
* Reusability
3352
+
CONS:
3353
+
* Complexity
3354
+
* Performance overhead
3355
+
* Cost and development time
3345
3356
</b></details>
3346
3357
3347
3358
<details>
3348
-
<summary>Explain Mono-repo vs. Multi-repo. What are the cons and pros of each approach?</summary><br><b>
3359
+
<summary>Explain Mono-repo vs. Multi-repo.What are the cons and pros of each approach?</summary><br><b>
3360
+
In a Mono-repo, all the code for an organization is stored in a single,centralized repository.
3361
+
PROS (Mono-repo):
3362
+
* Unified tooling
3363
+
* Code Sharing
3364
+
CONS (Mono-repo):
3365
+
* Increased complexity
3366
+
* Slower cloning
3367
+
3368
+
In a Multi-repo setup, each component is stored in it's own separate repository. Each repository has it's own version control history.
3369
+
PROS (Multi-repo):
3370
+
* Simpler to manage
3371
+
* Different teams and developers can work on different parts of the project independently, making parallel development easier.
3372
+
CONS (Multi-repo):
3373
+
* Code duplication
3374
+
* Integration challenges
3349
3375
</b></details>
3350
3376
3351
3377
<details>
@@ -3354,6 +3380,7 @@ In multi-CDN, content is distributed across multiple different CDNs, each might
3354
3380
* Not suitable for frequent code changes and the ability to deploy new features
3355
3381
* Not designed for today's infrastructure (like public clouds)
3356
3382
* Scaling a team to work monolithic architecture is more challenging
3383
+
* If a single component in this architecture fails, then the entire application fails.
3357
3384
</b></details>
3358
3385
3359
3386
<details>
@@ -3365,16 +3392,17 @@ In multi-CDN, content is distributed across multiple different CDNs, each might
3365
3392
3366
3393
<details>
3367
3394
<summary>What's a service mesh?</summary><br><b>
3368
-
3369
-
[This article](https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh) provides a great explanation.
3395
+
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.
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.
3374
3401
</b></details>
3375
3402
3376
3403
<details>
3377
3404
<summary>What is a message queue? When is it used?</summary><br><b>
3405
+
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.
0 commit comments