diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 18711bd7..6b611411 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -2,6 +2,5 @@ "ExpandedNodes": [ "" ], - "SelectedNode": "\\README-ar.md", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 1de88823..f357f9df 100644 Binary files a/.vs/slnx.sqlite and b/.vs/slnx.sqlite differ diff --git a/.vs/system-design-primer/v17/.suo b/.vs/system-design-primer/v17/.suo index cc063d3b..a57b03d1 100644 Binary files a/.vs/system-design-primer/v17/.suo and b/.vs/system-design-primer/v17/.suo differ diff --git a/README-ar.md b/README-ar.md index d03492d8..7532f9c4 100644 --- a/README-ar.md +++ b/README-ar.md @@ -5,7 +5,7 @@ # تمهيد لتصميم النظام

- +

@@ -46,7 +46,7 @@ ## بطاقات أنكي التعليمية

- +

@@ -62,7 +62,7 @@ تلبحث عن موارد لمساعدتك على التحضير لـ [** مقابلة البرمجة **](https://github.com/donnemartin/interactive-coding-challenges)?

- +

@@ -92,7 +92,7 @@ > يحتوي كل قسم على روابط لمزيد من الموارد المتعمقة.

- +

@@ -439,7 +439,7 @@ ### نظرية CAP

- +
Source: CAP theorem revisited

@@ -580,7 +580,7 @@ AP هو اختيار جيد إذا سمحت احتياجات العمل بذلك ## نظام اسم المجال

- +
Source: DNS security presentation

@@ -618,7 +618,7 @@ DNS هرمي ، مع وجود عدد قليل من الخوادم الموثوق ## Content delivery network

- +
Source: Why use a CDN

@@ -659,7 +659,7 @@ Sites with heavy traffic work well with pull CDNs, as traffic is spread out more ## Load balancer

- +
Source: Scalable system design patterns

@@ -729,7 +729,7 @@ Load balancers can also help with horizontal scaling, improving performance and ## Reverse proxy (web server)

- +
Source: Wikipedia
@@ -772,7 +772,7 @@ Additional benefits include: ## Application layer

- +
Source: Intro to architecting systems for scale

@@ -807,7 +807,7 @@ Systems such as [Consul](https://www.consul.io/docs/index.html), [Etcd](https:// ## Database

- +
Source: Scaling up to your first 10 million users

@@ -830,7 +830,7 @@ There are many techniques to scale a relational database: **master-slave replica The master serves reads and writes, replicating writes to one or more slaves, which serve only reads. Slaves can also replicate to additional slaves in a tree-like fashion. If the master goes offline, the system can continue to operate in read-only mode until a slave is promoted to a master or a new master is provisioned.

- +
Source: Scalability, availability, stability, patterns

@@ -845,7 +845,7 @@ The master serves reads and writes, replicating writes to one or more slaves, wh Both masters serve reads and writes and coordinate with each other on writes. If either master goes down, the system can continue to operate with both reads and writes.

- +
Source: Scalability, availability, stability, patterns

@@ -873,7 +873,7 @@ Both masters serve reads and writes and coordinate with each other on writes. I #### Federation

- +
Source: Scaling up to your first 10 million users

@@ -894,7 +894,7 @@ Federation (or functional partitioning) splits up databases by function. For ex #### Sharding

- +
Source: Scalability, availability, stability, patterns

@@ -1038,7 +1038,7 @@ Document stores provide high flexibility and are often used for working with occ #### Wide column store

- +
Source: SQL & NoSQL, a brief history

@@ -1061,7 +1061,7 @@ Wide column stores offer high availability and high scalability. They are often #### Graph database

- +
Source: Graph database

@@ -1089,7 +1089,7 @@ Graphs databases offer high performance for data models with complex relationshi ### SQL or NoSQL

- +
Source: Transitioning from RDBMS to NoSQL

@@ -1131,7 +1131,7 @@ Sample data well-suited for NoSQL: ## Cache

- +
Source: Scalable system design patterns

@@ -1202,7 +1202,7 @@ Since you can only store a limited amount of data in cache, you'll need to deter #### Cache-aside

- +
Source: From cache to in-memory data grid

@@ -1238,7 +1238,7 @@ Subsequent reads of data added to cache are fast. Cache-aside is also referred #### Write-through

- +
Source: Scalability, availability, stability, patterns

@@ -1273,7 +1273,7 @@ Write-through is a slow overall operation due to the write operation, but subseq #### Write-behind (write-back)

- +
Source: Scalability, availability, stability, patterns

@@ -1291,7 +1291,7 @@ In write-behind, the application does the following: #### Refresh-ahead

- +
Source: From cache to in-memory data grid

@@ -1323,7 +1323,7 @@ Refresh-ahead can result in reduced latency vs read-through if the cache can acc ## Asynchronism

- +
Source: Intro to architecting systems for scale

@@ -1369,7 +1369,7 @@ If queues start to grow significantly, the queue size can become larger than mem ## Communication

- +
Source: OSI 7 layer model

@@ -1401,7 +1401,7 @@ HTTP is an application layer protocol relying on lower-level protocols such as * ### Transmission control protocol (TCP)

- +
Source: How to make a multiplayer game

@@ -1425,7 +1425,7 @@ Use TCP over UDP when: ### User datagram protocol (UDP)

- +
Source: How to make a multiplayer game

@@ -1454,7 +1454,7 @@ Use UDP over TCP when: ### Remote procedure call (RPC)

- +
Source: Crack the system design interview

@@ -1680,7 +1680,7 @@ Handy metrics based on numbers above: > Articles on how real world systems are designed.

- +
Source: Twitter timelines at scale

diff --git a/images/0vBc0hN.png b/images/0vBc0hN.png index 1ca0e052..f1466344 100644 Binary files a/images/0vBc0hN.png and b/images/0vBc0hN.png differ diff --git a/images/4edXG0T.png b/images/4edXG0T.png index c9150d73..f2fc0c29 100644 Binary files a/images/4edXG0T.png and b/images/4edXG0T.png differ diff --git a/images/4j99mhe.png b/images/4j99mhe.png index c4328ee9..9ced8734 100644 Binary files a/images/4j99mhe.png and b/images/4j99mhe.png differ diff --git a/images/54GYsSx.png b/images/54GYsSx.png index 5ecc48ff..b23ea554 100644 Binary files a/images/54GYsSx.png and b/images/54GYsSx.png differ diff --git a/images/5KeocQs.jpg b/images/5KeocQs.jpg index 22abd871..0b718689 100644 Binary files a/images/5KeocQs.jpg and b/images/5KeocQs.jpg differ diff --git a/images/C9ioGtn.png b/images/C9ioGtn.png index efa22e30..cea66c98 100644 Binary files a/images/C9ioGtn.png and b/images/C9ioGtn.png differ diff --git a/images/MzExP06.png b/images/MzExP06.png index d9e0c463..348df476 100644 Binary files a/images/MzExP06.png and b/images/MzExP06.png differ diff --git a/images/ONjORqk.png b/images/ONjORqk.png index bec7a079..3841ca6a 100644 Binary files a/images/ONjORqk.png and b/images/ONjORqk.png differ diff --git a/images/OfVllex.png b/images/OfVllex.png index 834686b4..c8dba136 100644 Binary files a/images/OfVllex.png and b/images/OfVllex.png differ diff --git a/images/Q6z24La.png b/images/Q6z24La.png index 31da3d7b..b673a72c 100644 Binary files a/images/Q6z24La.png and b/images/Q6z24La.png differ diff --git a/images/TcUo2fw.png b/images/TcUo2fw.png index 2dd055d3..d0727cb6 100644 Binary files a/images/TcUo2fw.png and b/images/TcUo2fw.png differ diff --git a/images/U3qV33e.png b/images/U3qV33e.png index 4ff05769..a0e147e9 100644 Binary files a/images/U3qV33e.png and b/images/U3qV33e.png differ diff --git a/images/V5q57vU.png b/images/V5q57vU.png index 3eb7803e..39f4f053 100644 Binary files a/images/V5q57vU.png and b/images/V5q57vU.png differ diff --git a/images/Xkm5CXz.png b/images/Xkm5CXz.png index 95791e98..3aa5dd38 100644 Binary files a/images/Xkm5CXz.png and b/images/Xkm5CXz.png differ diff --git a/images/arabic/0vBc0hN.png b/images/arabic/0vBc0hN.png new file mode 100644 index 00000000..1ca0e052 Binary files /dev/null and b/images/arabic/0vBc0hN.png differ diff --git a/images/arabic/4edXG0T.png b/images/arabic/4edXG0T.png new file mode 100644 index 00000000..c9150d73 Binary files /dev/null and b/images/arabic/4edXG0T.png differ diff --git a/images/arabic/4j99mhe.png b/images/arabic/4j99mhe.png new file mode 100644 index 00000000..c4328ee9 Binary files /dev/null and b/images/arabic/4j99mhe.png differ diff --git a/images/arabic/54GYsSx.png b/images/arabic/54GYsSx.png new file mode 100644 index 00000000..5ecc48ff Binary files /dev/null and b/images/arabic/54GYsSx.png differ diff --git a/images/arabic/5KeocQs.jpg b/images/arabic/5KeocQs.jpg new file mode 100644 index 00000000..22abd871 Binary files /dev/null and b/images/arabic/5KeocQs.jpg differ diff --git a/images/arabic/C9ioGtn.png b/images/arabic/C9ioGtn.png new file mode 100644 index 00000000..efa22e30 Binary files /dev/null and b/images/arabic/C9ioGtn.png differ diff --git a/images/arabic/IOyLj4i.jpg b/images/arabic/IOyLj4i.jpg new file mode 100644 index 00000000..413c8ee8 Binary files /dev/null and b/images/arabic/IOyLj4i.jpg differ diff --git a/images/arabic/JdAsdvG.jpg b/images/arabic/JdAsdvG.jpg new file mode 100644 index 00000000..8c989e20 Binary files /dev/null and b/images/arabic/JdAsdvG.jpg differ diff --git a/images/arabic/MzExP06.png b/images/arabic/MzExP06.png new file mode 100644 index 00000000..d9e0c463 Binary files /dev/null and b/images/arabic/MzExP06.png differ diff --git a/images/arabic/ONjORqk.png b/images/arabic/ONjORqk.png new file mode 100644 index 00000000..bec7a079 Binary files /dev/null and b/images/arabic/ONjORqk.png differ diff --git a/images/arabic/OfVllex.png b/images/arabic/OfVllex.png new file mode 100644 index 00000000..834686b4 Binary files /dev/null and b/images/arabic/OfVllex.png differ diff --git a/images/arabic/Q6z24La.png b/images/arabic/Q6z24La.png new file mode 100644 index 00000000..31da3d7b Binary files /dev/null and b/images/arabic/Q6z24La.png differ diff --git a/images/arabic/TcUo2fw.png b/images/arabic/TcUo2fw.png new file mode 100644 index 00000000..2dd055d3 Binary files /dev/null and b/images/arabic/TcUo2fw.png differ diff --git a/images/arabic/U3qV33e.png b/images/arabic/U3qV33e.png new file mode 100644 index 00000000..4ff05769 Binary files /dev/null and b/images/arabic/U3qV33e.png differ diff --git a/images/arabic/V5q57vU.png b/images/arabic/V5q57vU.png new file mode 100644 index 00000000..3eb7803e Binary files /dev/null and b/images/arabic/V5q57vU.png differ diff --git a/images/arabic/Xkm5CXz.png b/images/arabic/Xkm5CXz.png new file mode 100644 index 00000000..95791e98 Binary files /dev/null and b/images/arabic/Xkm5CXz.png differ diff --git a/images/arabic/b4YtAEN.png b/images/arabic/b4YtAEN.png new file mode 100644 index 00000000..bdb7ac4c Binary files /dev/null and b/images/arabic/b4YtAEN.png differ diff --git a/images/arabic/bWxPtQA.png b/images/arabic/bWxPtQA.png new file mode 100644 index 00000000..566852cf Binary files /dev/null and b/images/arabic/bWxPtQA.png differ diff --git a/images/arabic/bgLMI2u.png b/images/arabic/bgLMI2u.png new file mode 100644 index 00000000..78c2035f Binary files /dev/null and b/images/arabic/bgLMI2u.png differ diff --git a/images/arabic/cdCv5g7.png b/images/arabic/cdCv5g7.png new file mode 100644 index 00000000..c5f46d47 Binary files /dev/null and b/images/arabic/cdCv5g7.png differ diff --git a/images/arabic/fNcl65g.png b/images/arabic/fNcl65g.png new file mode 100644 index 00000000..f3547439 Binary files /dev/null and b/images/arabic/fNcl65g.png differ diff --git a/images/arabic/h81n9iK.png b/images/arabic/h81n9iK.png new file mode 100644 index 00000000..a525ca33 Binary files /dev/null and b/images/arabic/h81n9iK.png differ diff --git a/images/arabic/h9TAuGI.jpg b/images/arabic/h9TAuGI.jpg new file mode 100644 index 00000000..692e0631 Binary files /dev/null and b/images/arabic/h9TAuGI.jpg differ diff --git a/images/arabic/iF4Mkb5.png b/images/arabic/iF4Mkb5.png new file mode 100644 index 00000000..b2b25926 Binary files /dev/null and b/images/arabic/iF4Mkb5.png differ diff --git a/images/arabic/jj3A5N8.png b/images/arabic/jj3A5N8.png new file mode 100644 index 00000000..87fbda93 Binary files /dev/null and b/images/arabic/jj3A5N8.png differ diff --git a/images/arabic/jrUBAF7.png b/images/arabic/jrUBAF7.png new file mode 100644 index 00000000..50f77549 Binary files /dev/null and b/images/arabic/jrUBAF7.png differ diff --git a/images/arabic/krAHLGg.png b/images/arabic/krAHLGg.png new file mode 100644 index 00000000..852cdd6b Binary files /dev/null and b/images/arabic/krAHLGg.png differ diff --git a/images/arabic/kxtjqgE.png b/images/arabic/kxtjqgE.png new file mode 100644 index 00000000..d748bfa2 Binary files /dev/null and b/images/arabic/kxtjqgE.png differ diff --git a/images/arabic/n16iOGk.png b/images/arabic/n16iOGk.png new file mode 100644 index 00000000..77526197 Binary files /dev/null and b/images/arabic/n16iOGk.png differ diff --git a/images/arabic/n41Azff.png b/images/arabic/n41Azff.png new file mode 100644 index 00000000..ff7a89e7 Binary files /dev/null and b/images/arabic/n41Azff.png differ diff --git a/images/arabic/rgSrvjG.png b/images/arabic/rgSrvjG.png new file mode 100644 index 00000000..b726dcfd Binary files /dev/null and b/images/arabic/rgSrvjG.png differ diff --git a/images/arabic/wU8x5Id.png b/images/arabic/wU8x5Id.png new file mode 100644 index 00000000..a0c05cde Binary files /dev/null and b/images/arabic/wU8x5Id.png differ diff --git a/images/arabic/wXGqG5f.png b/images/arabic/wXGqG5f.png new file mode 100644 index 00000000..616da96c Binary files /dev/null and b/images/arabic/wXGqG5f.png differ diff --git a/images/arabic/yB5SYwm.png b/images/arabic/yB5SYwm.png new file mode 100644 index 00000000..2ff44ae8 Binary files /dev/null and b/images/arabic/yB5SYwm.png differ diff --git a/images/arabic/yzDrJtA.jpg b/images/arabic/yzDrJtA.jpg new file mode 100644 index 00000000..f70ebd65 Binary files /dev/null and b/images/arabic/yzDrJtA.jpg differ diff --git a/images/arabic/zdCAkB3.png b/images/arabic/zdCAkB3.png new file mode 100644 index 00000000..8df59582 Binary files /dev/null and b/images/arabic/zdCAkB3.png differ diff --git a/images/bWxPtQA.png b/images/bWxPtQA.png index 566852cf..e5e0726b 100644 Binary files a/images/bWxPtQA.png and b/images/bWxPtQA.png differ diff --git a/images/bgLMI2u.png b/images/bgLMI2u.png index 78c2035f..e40e658d 100644 Binary files a/images/bgLMI2u.png and b/images/bgLMI2u.png differ diff --git a/images/cdCv5g7.png b/images/cdCv5g7.png index c5f46d47..d9ab23e5 100644 Binary files a/images/cdCv5g7.png and b/images/cdCv5g7.png differ diff --git a/images/fNcl65g.png b/images/fNcl65g.png index f3547439..7d5b6f6e 100644 Binary files a/images/fNcl65g.png and b/images/fNcl65g.png differ diff --git a/images/h81n9iK.png b/images/h81n9iK.png index a525ca33..2ba3f1b7 100644 Binary files a/images/h81n9iK.png and b/images/h81n9iK.png differ diff --git a/images/iF4Mkb5.png b/images/iF4Mkb5.png index b2b25926..391e3cd9 100644 Binary files a/images/iF4Mkb5.png and b/images/iF4Mkb5.png differ diff --git a/images/jj3A5N8.png b/images/jj3A5N8.png index 87fbda93..e400e5f4 100644 Binary files a/images/jj3A5N8.png and b/images/jj3A5N8.png differ diff --git a/images/jrUBAF7.png b/images/jrUBAF7.png index 50f77549..623b5824 100644 Binary files a/images/jrUBAF7.png and b/images/jrUBAF7.png differ diff --git a/images/krAHLGg.png b/images/krAHLGg.png index 852cdd6b..7cc0e802 100644 Binary files a/images/krAHLGg.png and b/images/krAHLGg.png differ diff --git a/images/kxtjqgE.png b/images/kxtjqgE.png index d748bfa2..98d6c06b 100644 Binary files a/images/kxtjqgE.png and b/images/kxtjqgE.png differ diff --git a/images/n16iOGk.png b/images/n16iOGk.png index 77526197..8a9be232 100644 Binary files a/images/n16iOGk.png and b/images/n16iOGk.png differ diff --git a/images/n41Azff.png b/images/n41Azff.png index ff7a89e7..b4ed1a81 100644 Binary files a/images/n41Azff.png and b/images/n41Azff.png differ diff --git a/images/rgSrvjG.png b/images/rgSrvjG.png index b726dcfd..dddfc503 100644 Binary files a/images/rgSrvjG.png and b/images/rgSrvjG.png differ diff --git a/images/wU8x5Id.png b/images/wU8x5Id.png index a0c05cde..369a9c3a 100644 Binary files a/images/wU8x5Id.png and b/images/wU8x5Id.png differ diff --git a/images/wXGqG5f.png b/images/wXGqG5f.png index 616da96c..7184333c 100644 Binary files a/images/wXGqG5f.png and b/images/wXGqG5f.png differ diff --git a/images/yB5SYwm.png b/images/yB5SYwm.png index 2ff44ae8..6d494b4d 100644 Binary files a/images/yB5SYwm.png and b/images/yB5SYwm.png differ