Skip to content

gvwilson/dsdx

Repository files navigation

Distributed Systems Design by Example

A sequel to Software Design by Example.

Learner Persona

FIXME

Lessons

  1. Introduction: what this training does and doesn't cover.
  2. MapReduce: processing large datasets.
  3. A Publish-Subscribe Message Queue: loosely-coupled communication.
  4. A Work-Stealing Scheduler: sharing work more efficiently.
  5. Distributed Tracing: keeping track of what's happening.
  6. Conflict-Free Replicated Data Types: scalable data structures.
  7. OAuth: distributed authentication.
  8. Distributed Locks: coordinating access to shared resources.
  9. BitTorrent: sharing data at scale.
  10. Eventually Consistent Key-Value Store: when availability matters more than consistency.
  11. The Saga Pattern: distributed transactions with compensations.
  12. TCP: reliable communication.
  13. DNS: how sites find each other.
  14. NTP: what time is it?
  15. Conclusion: looking back and next steps.

Appendices

Acknowledgments {: #acknowledgments}

Greg Wilson is a programmer, author, and educator based in Toronto, Canada. He was the co-founder and first Executive Director of Software Carpentry and received ACM SIGSOFT's Influential Educator Award in 2020.

start where you are · use what you have · help who you can

Contributors