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