Values: References to Task units that are associated with those paths.
The server maps keys (paths) to the correct handling logic (Task units).
Server Internals: Tasks as Request Handlers
Each URL path maps to a specific Task unit.
When the server receives the "/posts/1" key, it:
Looks up the Task unit for "/posts/1".
Executes that function with the request details.
Returns the appropriate response.
Filesystem Internals: Storage as Filesystem
A Task unit from the Server Building Block then interacts with a Filesystem Building Block
A Filesystem Building Block:
Utilizes a Tree Storage Unit.
Provides systems the ability to pass in the actual file path to a file (e.g. /public_html/posts/1.html)
The node that is connected to that path contains the raw 0's and 1's for that file.
This is passed to the Task unit, which then returns it to the system that sent the request to the server.
Diagram of the Server Building Block
Diagram of the File System Building Block
Diagram of the Simple Web Server
Building Blocks Interacting
In summary a static web server can be modeled using two Building Blocks:
A server (handles requests),
A filesystem (provides access to raw file data)
Note: No specific technologies mentioned
This is intentional and will remain so for this course
The critical insight that Senior engineers have is that technologies come and go, but the core principles of what you need do not change
Understanding these core principals are crucial to building that "Senior level intuition"
Buliding Blocks as Intuition
This course aims to add a third fundamental pillar to your toolbelt.
1) Data Structures (employed by Storage Units)
2) Algorithms (employed by Task Units)
3) Modules/Components (employed by Building Blocks)
This course aims to accelerate the growth of your intuition by defining and describing technology agnostic Building Blocks and providing several Case Studies where they are employed.
Building Blocks as Architecture
By combining technology agnostic Building Blocks, we can assemble entire architectures.
The intuition: deeply understand the Building Blocks at your disposal, what are their strengths and weaknesses, and what combination of Storage and Task units they consist of.
This helps in debugging, scaling, and evolving the system over time.
Gaining Intuition
By seeing how Storage and Task units unite in a Building Block, you learn:
How systems are structured.
How different services communicate.
Why certain patterns and decisions are made at the architectural level.
Summary & Next Steps
We’ve introduced the concept of a “Building Block” as Storage and Tasks units serving a purpose.
This idea helps to understand how complex systems are composed of simpler components.
Next, we’ll explore how to identify, design, and integrate these building blocks effectively.