Building blocks

Storage, Queues and Real-time

Smaller building blocks that show up in many designs: a simple log-structured store, changing indexes without downtime, a database-backed job queue, a rule engine, the repository pattern and real-time video with WebRTC.

6 lessons1 h 5 minIntermediate

0/6

What you'll learn

0 of 6 lessons complete

Who this is for and what you will be able to do

Who this is for

Engineers who know the basics of databases and services and want to understand specific mechanisms well enough to build or review them.

After this course you will be able to

  • Explain how an append-only key-value store with an in-memory index works and where it breaks
  • Add an index or change a schema on a live table without blocking writes
  • Build a reliable work queue on a relational database
  • Design a rule engine that is safe, versioned and idempotent
  • Draw the layers and limits of the repository pattern
  • Describe how WebRTC connects peers and when to add a media server

Topics it coversStorage EnginesAll topics

How a lesson works

  • Interactive diagram

    See how each component connects, then run a request through it.

  • Plain-words toggle

    Switch between the technical explanation and a plain-language one.

  • Practice design

    Change a design of your own in the builder and see how it holds up.

  • Quiz and exercise

    Test your understanding before moving on.

Go deeper

These lessons are written from scratch. The books below are excellent next reads.

  • Designing Data-Intensive Applicationsby Martin Kleppmannstorage engines, replication and stream processing
  • Database Internalsby Alex Petrovhow storage engines and distributed databases are built
  • Patterns of Enterprise Application Architectureby Martin Fowlerrepository, unit of work and related patterns