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
-[System Design Primer](https://GitHub.com/donnemartin/system-design-primer) - [109k ⭐] - Awesome compilation of resources, including Anki flashcard decks.
46
46
@@ -54,15 +54,17 @@ Started By Gabriel Leon de Mattos
54
54
55
55
-[Design Pattern for Distributed Systems](https://www.codemag.com/Article/1909071/Design-Patterns-for-Distributed-Systems) - Article talking about some patterns as well as some technologies to be considered.
56
56
57
-
## Advanced
57
+
-[Practice system design problems using AI on Codemia.io](https://codemia.io) - A tool which allows you to practice system design problems interactively like an interview with AI. There's iterative feedback and final evaluation which scores your performance
58
+
59
+
## Advanced
58
60
59
61
-[Distributed Computing](https://en.wikipedia.org/wiki/Distributed_computing) - Wikipedia article broadening the view of distributed system design.
60
62
61
63
-[Fallacies of Distributed Computing](https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing) - Wikipedia article introducing the topic of fallacies of distributed computing and its effects.
62
64
63
65
-[Fallacies of Distributed Computing Explained](http://www.rgoarchitects.com/Files/fallacies.pdf) - In depth explanation of the fallacies mentioned above.
64
66
65
-
-[CAP Theorem](https://www.ibm.com/cloud/learn/cap-theorem) - IBM Article about CAP Theorem, Microservices and NoSQL DBs.
67
+
-[CAP Theorem](https://www.ibm.com/cloud/learn/cap-theorem) - IBM Article about CAP Theorem, Microservices and NoSQL DBs.
66
68
67
69
-[Pattern: Microservice Architecture](https://microservices.io/patterns/microservices.html) - Good article talking about Microservice architecture as well as its drawbacks.
68
70
@@ -87,6 +89,7 @@ Started By Gabriel Leon de Mattos
87
89
-[Monolith to Microservices](https://www.nginx.com/resources/library/monolith-to-microservices/) - [Free 👍] - Written by the same author as the one above, this book will cover the migration from Monolith to Microservices, it's recommended you start by the previous book.
88
90
89
91
-[Distributed Systems (3rd Edition)](https://www.distributed-systems.net/index.php/books/ds3/) - [Free 👍] - Great overview of and in-depth introduction to distributed systems. Recommended for intermediate level readers.
92
+
90
93
---
91
94
92
95
# Videos
@@ -109,7 +112,7 @@ A collection of videos based on distributed systems.
109
112
110
113
-[System Design Introduction for Interview](https://www.youtube.com/watch?v=UzLMhqg3_Wc) - Tushar's intro to System Design.
111
114
112
-
-[Distributed Systems](https://www.youtube.com/playlist?list=PLOE1GTZ5ouRPbpTnrZ3Wqjamfwn_Q5Y9A) - This is an introductory course in Distributed Systems made by Chris Colohan. He got PhD from Carnegie Mellon, then spent 10 years working at Google building distributed systems.
115
+
-[Distributed Systems](https://www.youtube.com/playlist?list=PLOE1GTZ5ouRPbpTnrZ3Wqjamfwn_Q5Y9A) - This is an introductory course in Distributed Systems made by Chris Colohan. He got PhD from Carnegie Mellon, then spent 10 years working at Google building distributed systems.
113
116
114
117
-[The Easy Way](https://www.youtube.com/channel/UCVZfU1sp66H9d4sdYx4iNkQ) - Up and coming channel with easy to understand videos about Distributed Systems.
115
118
@@ -119,7 +122,7 @@ A collection of videos based on distributed systems.
119
122
120
123
## Advanced
121
124
122
-
-[The evolution of Reddit Architecture](https://www.youtube.com/watch?v=nUcO7n4hek4) - Overview of how Reddit system design scaled.
125
+
-[The evolution of Reddit Architecture](https://www.youtube.com/watch?v=nUcO7n4hek4) - Overview of how Reddit system design scaled.
123
126
-[6.824 Distributed Systems by MIT](https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB) - Graduate level course on distributed systems from MIT (2020).
124
127
-[CSE138 Distributed Systems by UCSC](https://www.youtube.com/playlist?list=PLNPUF5QyWU8O0Wd8QDh9KaM1ggsxspJ31) - Undergraduate course on distributed systems from UCSC (2020).
125
128
@@ -129,7 +132,6 @@ A collection of videos based on distributed systems.
129
132
130
133
## Relational Database Management System
131
134
132
-
133
135
-[MariaDB](https://mariadb.org/) - MariaDB is a fork of MySQL server.
134
136
135
137
-[MySQL](https://dev.mysql.com/) - Widely used relational database.
@@ -140,7 +142,6 @@ A collection of videos based on distributed systems.
140
142
141
143
-[Sql Server](https://www.microsoft.com/en-us/sql-server) - Widely used relational database.
142
144
143
-
144
145
## NoSQL
145
146
146
147
### Cache (Key-Value)
@@ -153,15 +154,14 @@ A collection of videos based on distributed systems.
153
154
154
155
-[Memcached](https://GitHub.com/memcached/memcached) - [10.2k ⭐] - One of the first in-memory caching database, high performing and multi-threaded.
155
156
156
-
-[Redis](https://GitHub.com/redis/redis) - [44k ⭐] - Widely used in-memory caching database with many added features such as persistent storage and supporting strings, lists, sets, hashses, streams, bitmaps, etc.
157
+
-[Redis](https://GitHub.com/redis/redis) - [44k ⭐] - Widely used in-memory caching database with many added features such as persistent storage and supporting strings, lists, sets, hashses, streams, bitmaps, etc.
157
158
158
159
### Store (Key-Value)
159
160
160
161
-[Apple FoundationDB](https://GitHub.com/apple/foundationdb) - [10k ⭐] - Multi-model (many data types in a single database), ACID key-value store. Easily scalable and fault tolerant.
161
162
162
163
-[Cosmos DB](https://docs.microsoft.com/en-us/azure/cosmos-db/introduction) - Microsoft's globally distributed, multi-model database service. Eastically and independently scale throughput and storage. SQL, MongoDB, Cassandra, Tables, Gremlin, and Spark APIs.
163
164
164
-
165
165
### Document Store
166
166
167
167
-[CouchDB](https://GitHub.com/apache/couchdb) - [4.6k ⭐] - ACID compliant NoSQL document-store DB, provides a RESTful HTTP API for reading and updating database documents.
@@ -180,7 +180,7 @@ A collection of videos based on distributed systems.
180
180
181
181
-[Google Bigtable](https://cloud.google.com/bigtable) - Scalable and performant 'NoSQL' database for large analytical and operational workload.
182
182
183
-
-[Cassandra](https://cassandra.apache.org/) - Facebook-born project very fast, easily scalable, with option to include consistency with each operation.
183
+
-[Cassandra](https://cassandra.apache.org/) - Facebook-born project very fast, easily scalable, with option to include consistency with each operation.
184
184
185
185
-[Scylla](https://GitHub.com/scylladb/scylla) - [4.9k ⭐] - 'NoSQL' data store using seastar framework, compatible with Cassandra.
186
186
@@ -204,15 +204,15 @@ A collection of videos based on distributed systems.
204
204
205
205
-[Lustre](http://lustre.org/) - File system for computer clusters.
-[Kubernetes](https://kubernetes.io/) - Highly popular way to deploy, manage and automatically scale a cluster of containers on bare-metal or virtual servers.
218
218
@@ -230,18 +230,18 @@ A collection of videos based on distributed systems.
230
230
231
231
-[Amazon MQ](https://aws.amazon.com/amazon-mq/) - Open source message broker from Amazon.
232
232
233
-
-[Apache ActiveMQ](https://activemq.apache.org/) - It's a multi-protocol, java based messaging server.
233
+
-[Apache ActiveMQ](https://activemq.apache.org/) - It's a multi-protocol, java based messaging server.
234
234
235
235
-[Apache Kafka](https://kafka.apache.org/) - Widely popular message broker with low latency for data streaming.
236
236
237
-
-[RabbitMQ](https://www.rabbitmq.com/) - Widely popular lightweight
238
-
message broker written in erlang that also supports multiple messaging protocols.
237
+
-[RabbitMQ](https://www.rabbitmq.com/) - Widely popular lightweight
238
+
message broker written in erlang that also supports multiple messaging protocols.
239
239
240
240
-[IronMQ](https://www.iron.io/mq) - Very fast and highly scalable messaging broker. (not open source)
241
241
242
-
-[Apache Pulsar](https://pulsar.apache.org/) - Created by yahoo, also highly scalable, low latency, geo-replication and multi-tenacy.
242
+
-[Apache Pulsar](https://pulsar.apache.org/) - Created by yahoo, also highly scalable, low latency, geo-replication and multi-tenacy.
243
243
244
-
-[Kestrel](https://github.com/twitter-archive/kestrel) - Written in Scala and speaks the memcached protocol. It works much like Kafka.
244
+
-[Kestrel](https://github.com/twitter-archive/kestrel) - Written in Scala and speaks the memcached protocol. It works much like Kafka.
245
245
246
246
-[Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview) - A fully managed enterprise integration message broker.
247
247
@@ -251,7 +251,7 @@ message broker written in erlang that also supports multiple messaging protocols
251
251
252
252
-[SeeSaw](https://GitHub.com/google/seesaw) - [5.1k ⭐] - Used by Google, developed in Go, linux-based virtual load balancer server.
253
253
254
-
-[HAProxy](https://www.haproxy.org/) - Widely popular option, provides high-availability, proxy, TCP/HTTP load balancing. Used by Reddit, Imgur, MaxCDN, GitHub, AirBNB.
254
+
-[HAProxy](https://www.haproxy.org/) - Widely popular option, provides high-availability, proxy, TCP/HTTP load balancing. Used by Reddit, Imgur, MaxCDN, GitHub, AirBNB.
255
255
256
256
-[Zevenet](https://www.zevenet.com/products/community/#repository) - Supports L3, L4 and L7. Easy install with a docker repo. Supports advanced health-check monitorining.
257
257
@@ -281,24 +281,25 @@ message broker written in erlang that also supports multiple messaging protocols
281
281
282
282
-[Azure Load Balancing](https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-overview) - Popular choice for Microsoft's Azure customers. Supports internal and external traffics, ipv6, monitorining and the standard load balancing set of features.
-[Ambari](https://ambari.apache.org/) - Dashboard that integrates most of hadoop related technologies for easy management and executions.
290
291
291
292
### Data Ingestion
292
293
293
294
-[Sqoop](https://sqoop.apache.org/) - Efficiently transfer data between Hadoop and structured datastores such as relational databases.
294
295
295
-
-[Flume](https://flume.apache.org/) - Distributed, highly available and efficient in collecting, aggregating and moving large amounts of log data.
296
+
-[Flume](https://flume.apache.org/) - Distributed, highly available and efficient in collecting, aggregating and moving large amounts of log data.
296
297
297
298
-[Apache Kafka](https://kafka.apache.org/) - Widely popular message broker with low latency for data streaming.
298
299
299
300
### Workflow Scheduler
300
301
301
-
-[Oozie](https://oozie.apache.org/) - Create workflows in xml to execute jobs (from other hadoop-ecosystem applications) in steps, allows for parallel execution as well.
302
+
-[Oozie](https://oozie.apache.org/) - Create workflows in xml to execute jobs (from other hadoop-ecosystem applications) in steps, allows for parallel execution as well.
302
303
303
304
### Query
304
305
@@ -308,19 +309,18 @@ message broker written in erlang that also supports multiple messaging protocols
308
309
### Processing
309
310
310
311
-[Tez](https://tez.apache.org/) - Solves a similar problem to Spark and MapReduce, it's more efficient than MapReduce because it calculates the most efficient way of doing it.
311
-
-[Map Reduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) - MapReduce, as the name implies, maps data and reduce the results.
312
-
-[Spark](https://spark.apache.org/) - Powerful data processing to not only process data like Tez (and MapReduce), it can process streams of data in real time, apply regression analysis algorithms in ML and much more.
313
-
-[Apex](https://apex.apache.org/) - *Retired project, it's a YARN-native platform that unifies stream and batch processing.
312
+
-[Map Reduce](https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) - MapReduce, as the name implies, maps data and reduce the results.
313
+
-[Spark](https://spark.apache.org/) - Powerful data processing to not only process data like Tez (and MapReduce), it can process streams of data in real time, apply regression analysis algorithms in ML and much more.
314
+
-[Apex](https://apex.apache.org/) - \*Retired project, it's a YARN-native platform that unifies stream and batch processing.
314
315
315
316
### DB
316
317
317
318
-[HBase](https://GitHub.com/apache/hbase) - [3.6k ⭐] - Modeled after Google's Bigtable and written in Java. Developed as a part of Apache Hadoop project.
318
319
319
320
### Resource Management
320
321
321
-
-[YARN](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html) - 'Yet Another Resource Negotiator', works like a kernel to manage computer resources across the clusters.
322
-
-[MESOS](http://mesos.apache.org/) - Works like a Linux Kernel by managing CPU, memory, storage and other resources across the cluster.
323
-
322
+
-[YARN](https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html) - 'Yet Another Resource Negotiator', works like a kernel to manage computer resources across the clusters.
323
+
-[MESOS](http://mesos.apache.org/) - Works like a Linux Kernel by managing CPU, memory, storage and other resources across the cluster.
324
324
325
325
## REST Framework
326
326
@@ -334,7 +334,7 @@ message broker written in erlang that also supports multiple messaging protocols
334
334
335
335
-[Play Framework](https://github.com/playframework/playframework) - [11.6k ⭐] - Very fast, high throughput framework written in Scala/Java that is RESTful by default.
336
336
337
-
-[Flask](https://github.com/pallets/flask) - [51.6k ⭐] - A lightweight Python Microframework for fast prototyping and production.
337
+
-[Flask](https://github.com/pallets/flask) - [51.6k ⭐] - A lightweight Python Microframework for fast prototyping and production.
338
338
339
339
-[FastAPI](https://github.com/tiangolo/fastapi) - [22.7k ⭐] - A lightweight Python Microframework inspired in Flask but more modern, using Python async.
0 commit comments