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: course-definition.yml
+50Lines changed: 50 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -45,6 +45,56 @@ marketing:
45
45
difficulty: medium
46
46
sample_extension_idea_title: "Persistence"
47
47
sample_extension_idea_description: "A Redis server that can read and write .rdb files"
48
+
frequently_asked_questions:
49
+
- question_markdown: "What exactly will I build?"
50
+
answer_markdown: |-
51
+
You'll start by implementing the core building blocks of every Redis server:
52
+
* Binding to a TCP port and listening for connections
53
+
* Responding to basic commands like `PING` and `ECHO`
54
+
* Parsing the Redis Protocol (RESP) from client requests
55
+
* Handling multiple clients concurrently
56
+
* Implementing the `SET` and `GET` commands to store and retrieve data.
57
+
58
+
At this stage, your Redis will already feel real, and you'll be able to interact with the official `redis-cli`.
59
+
60
+
As you progress, you'll implement advanced features like:
61
+
* Redis replication
62
+
* RDB persistence
63
+
* Atomic transactions
64
+
* ... and more
65
+
66
+
At the end, you'll have a GitHub repo to show off.
67
+
68
+
- question_markdown: "What exactly will I learn?"
69
+
answer_markdown: |-
70
+
In the first 7 stages, you'll learn:
71
+
* How a TCP server binds to a port and accepts connections
72
+
* What the Redis Protocol (RESP) is, and how to parse/encode messages
73
+
* How to handle multiple clients concurrently
74
+
* How to implement commands like `PING`, `ECHO`, `SET`, and `GET`
75
+
* How to manage a key-value store with automatic key expiry
76
+
77
+
In the advanced stages, you'll discover new programming ideas, such as master-replica synchronization, atomic transactions, and specialized data structures like sorted sets and geospatial indices.
78
+
79
+
As your code gets complex, you'll be forced to structure and refactor it - to avoid regressions and to make adding new features easier.
80
+
81
+
- question_markdown: "Why should I build such a project?"
82
+
answer_markdown: |-
83
+
Building your own Redis blends network programming, concurrent computing, and system design. If you've mostly built websites or apps, this project takes you a layer deeper to understand how caching and distributed systems work.
84
+
85
+
You’ll also be building a core piece of infrastructure that applications rely on, such as [Twitter's timeline](https://blog.x.com/engineering/en_us/topics/infrastructure/2017/the-infrastructure-behind-twitter-scale#cache) and [Uber's integrated cache](https://www.uber.com/en-GB/blog/how-uber-serves-over-40-million-reads-per-second-using-an-integrated-cache/).
86
+
87
+
Beyond technical depth, there's something uniquely satisfying about understanding a tool used by millions of developers every day. You'll come out of it as a more confident and interesting developer.
88
+
89
+
- question_markdown: "What are the prerequisites for this challenge?"
90
+
answer_markdown: |-
91
+
You should be comfortable writing code in any one language and using Git. No prior experience with databases or network programming is required.
92
+
93
+
Most learners pick up required concepts (e.g, TCP servers) as they go.
94
+
95
+
What matters most is curiosity and persistence. You'll develop intuition by exploring, debugging, and discovering solutions yourself.
96
+
97
+
While we will make it extremely simple to get started, don't expect this to be a follow-along tutorial.
0 commit comments