Skip to content

Commit 2edd453

Browse files
committedDec 2, 2023
adding codemia as a resource
1 parent 3a1382d commit 2edd453

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed
 

‎readme.md

+37-37
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@ Started By Gabriel Leon de Mattos
2626

2727
[Tools](#tools)
2828

29-
* [Relational Database](#Relational-Database-Management-System)
30-
* [NoSQL](#NoSQL)
31-
* [Distributed File Systems](#Distributed-File-Systems)
32-
* [Resource Management](#Resource-Management)
33-
* [Stream Processing](#Stream-Processing)
34-
* [Message Broker](#Message-Broker)
35-
* [Load Balancers](#Load-Balancers)
36-
* [Hadoop Ecosystem](#Hadoop-Ecosystem)
37-
* [REST Framework](#REST-Framework)
29+
- [Relational Database](#Relational-Database-Management-System)
30+
- [NoSQL](#NoSQL)
31+
- [Distributed File Systems](#Distributed-File-Systems)
32+
- [Resource Management](#Resource-Management)
33+
- [Stream Processing](#Stream-Processing)
34+
- [Message Broker](#Message-Broker)
35+
- [Load Balancers](#Load-Balancers)
36+
- [Hadoop Ecosystem](#Hadoop-Ecosystem)
37+
- [REST Framework](#REST-Framework)
3838

3939
[Bonus](#bonus)
4040

4141
# Articles
4242

43-
## Introduction / Interviews
43+
## Introduction / Interviews
4444

4545
- [System Design Primer](https://GitHub.com/donnemartin/system-design-primer) - [109k ⭐] - Awesome compilation of resources, including Anki flashcard decks.
4646

@@ -54,15 +54,17 @@ Started By Gabriel Leon de Mattos
5454

5555
- [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.
5656

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
5860

5961
- [Distributed Computing](https://en.wikipedia.org/wiki/Distributed_computing) - Wikipedia article broadening the view of distributed system design.
6062

6163
- [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.
6264

6365
- [Fallacies of Distributed Computing Explained](http://www.rgoarchitects.com/Files/fallacies.pdf) - In depth explanation of the fallacies mentioned above.
6466

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.
6668

6769
- [Pattern: Microservice Architecture](https://microservices.io/patterns/microservices.html) - Good article talking about Microservice architecture as well as its drawbacks.
6870

@@ -87,6 +89,7 @@ Started By Gabriel Leon de Mattos
8789
- [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.
8890

8991
- [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+
9093
---
9194

9295
# Videos
@@ -109,7 +112,7 @@ A collection of videos based on distributed systems.
109112

110113
- [System Design Introduction for Interview](https://www.youtube.com/watch?v=UzLMhqg3_Wc) - Tushar's intro to System Design.
111114

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.
113116

114117
- [The Easy Way](https://www.youtube.com/channel/UCVZfU1sp66H9d4sdYx4iNkQ) - Up and coming channel with easy to understand videos about Distributed Systems.
115118

@@ -119,7 +122,7 @@ A collection of videos based on distributed systems.
119122

120123
## Advanced
121124

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.
123126
- [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).
124127
- [CSE138 Distributed Systems by UCSC](https://www.youtube.com/playlist?list=PLNPUF5QyWU8O0Wd8QDh9KaM1ggsxspJ31) - Undergraduate course on distributed systems from UCSC (2020).
125128

@@ -129,7 +132,6 @@ A collection of videos based on distributed systems.
129132

130133
## Relational Database Management System
131134

132-
133135
- [MariaDB](https://mariadb.org/) - MariaDB is a fork of MySQL server.
134136

135137
- [MySQL](https://dev.mysql.com/) - Widely used relational database.
@@ -140,7 +142,6 @@ A collection of videos based on distributed systems.
140142

141143
- [Sql Server](https://www.microsoft.com/en-us/sql-server) - Widely used relational database.
142144

143-
144145
## NoSQL
145146

146147
### Cache (Key-Value)
@@ -153,15 +154,14 @@ A collection of videos based on distributed systems.
153154

154155
- [Memcached](https://GitHub.com/memcached/memcached) - [10.2k ⭐] - One of the first in-memory caching database, high performing and multi-threaded.
155156

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.
157158

158159
### Store (Key-Value)
159160

160161
- [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.
161162

162163
- [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.
163164

164-
165165
### Document Store
166166

167167
- [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.
180180

181181
- [Google Bigtable](https://cloud.google.com/bigtable) - Scalable and performant 'NoSQL' database for large analytical and operational workload.
182182

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.
184184

185185
- [Scylla](https://GitHub.com/scylladb/scylla) - [4.9k ⭐] - 'NoSQL' data store using seastar framework, compatible with Cassandra.
186186

@@ -204,15 +204,15 @@ A collection of videos based on distributed systems.
204204

205205
- [Lustre](http://lustre.org/) - File system for computer clusters.
206206

207-
- [CephFS](https://ceph.io/) - Unified, distributed storage system.
207+
- [CephFS](https://ceph.io/) - Unified, distributed storage system.
208208

209209
- [GlusterFS](https://www.gluster.org/) - Scale-out NAS file system.
210210

211211
- [MooseFS](https://moosefs.com/) - POSIX-compliant distributed file system.
212212

213213
- [XtreemFS](http://www.xtreemfs.org/) - Fault tolerant file system.
214214

215-
## Resource Management
215+
## Resource Management
216216

217217
- [Kubernetes](https://kubernetes.io/) - Highly popular way to deploy, manage and automatically scale a cluster of containers on bare-metal or virtual servers.
218218

@@ -230,18 +230,18 @@ A collection of videos based on distributed systems.
230230

231231
- [Amazon MQ](https://aws.amazon.com/amazon-mq/) - Open source message broker from Amazon.
232232

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.
234234

235235
- [Apache Kafka](https://kafka.apache.org/) - Widely popular message broker with low latency for data streaming.
236236

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.
239239

240240
- [IronMQ](https://www.iron.io/mq) - Very fast and highly scalable messaging broker. (not open source)
241241

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.
243243

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.
245245

246246
- [Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview) - A fully managed enterprise integration message broker.
247247

@@ -251,7 +251,7 @@ message broker written in erlang that also supports multiple messaging protocols
251251

252252
- [SeeSaw](https://GitHub.com/google/seesaw) - [5.1k ⭐] - Used by Google, developed in Go, linux-based virtual load balancer server.
253253

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.
255255

256256
- [Zevenet](https://www.zevenet.com/products/community/#repository) - Supports L3, L4 and L7. Easy install with a docker repo. Supports advanced health-check monitorining.
257257

@@ -281,24 +281,25 @@ message broker written in erlang that also supports multiple messaging protocols
281281

282282
- [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.
283283

284-
## Hadoop Ecosystem
284+
## Hadoop Ecosystem
285285

286286
<img src="https://raw.githubusercontent.com/madd86/awesome-system-design/master/media/hadoop-ecosystem.png" align="center" width="330">
287287

288288
### Dashboard
289+
289290
- [Ambari](https://ambari.apache.org/) - Dashboard that integrates most of hadoop related technologies for easy management and executions.
290291

291292
### Data Ingestion
292293

293294
- [Sqoop](https://sqoop.apache.org/) - Efficiently transfer data between Hadoop and structured datastores such as relational databases.
294295

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.
296297

297298
- [Apache Kafka](https://kafka.apache.org/) - Widely popular message broker with low latency for data streaming.
298299

299300
### Workflow Scheduler
300301

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.
302303

303304
### Query
304305

@@ -308,19 +309,18 @@ message broker written in erlang that also supports multiple messaging protocols
308309
### Processing
309310

310311
- [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.
314315

315316
### DB
316317

317318
- [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.
318319

319320
### Resource Management
320321

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.
324324

325325
## REST Framework
326326

@@ -334,7 +334,7 @@ message broker written in erlang that also supports multiple messaging protocols
334334

335335
- [Play Framework](https://github.com/playframework/playframework) - [11.6k ⭐] - Very fast, high throughput framework written in Scala/Java that is RESTful by default.
336336

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.
338338

339339
- [FastAPI](https://github.com/tiangolo/fastapi) - [22.7k ⭐] - A lightweight Python Microframework inspired in Flask but more modern, using Python async.
340340

0 commit comments

Comments
 (0)
Please sign in to comment.