Developer Voices

Building the SpacetimeDB Database, Game-First (with Tyler Cloutier)


Listen Later

Eighteen months ago, Tyler Cloutier appeared on the show with what sounded like an ambitious (some might say crazy) plan: build a new distributed database from scratch, then use it to power a massively multiplayer online game. That's two of the hardest problems in software, tackled simultaneously. But sometimes the best infrastructure comes from solving your own impossible problems.

The game, Bitcraft, has now launched on Steam. SpacetimeDB has hit version 1.0. And Tyler returns to share what actually happened when theory met production reality. We cover the launch day performance disasters (including a cascading failure caused by logging while holding a lock), why single-threaded execution running entirely from L1 cache can outperform sophisticated multi-threaded approaches by two orders of magnitude, and how the database's reducer model - borrowed from functional programming - enables zero-downtime code deployments. We also get into how SpacetimeDB is expanding beyond games with TypeScript support and React hooks that make building real-time multiplayer web apps surprisingly simple.

If you're building anything where multiple users need to see the same data update in real time - which, as Tyler points out, describes most successful applications from Figma to Facebook - SpacetimeDB's approach of treating every app as a multiplayer game might be worth understanding.

--

Support Developer Voices on Patreon: https://patreon.com/DeveloperVoices

Support Developer Voices on YouTube: https://www.youtube.com/@DeveloperVoices/join

SpacetimeDB: https://spacetimedb.com/

SpacetimeDB on GitHub: https://github.com/clockworklabs/SpacetimeDB

Our previous episode with Tyler: https://youtu.be/roEsJcQYjd8

Clockwork Labs: https://clockworklabs.io/

Bitcraft Online: https://bitcraftonline.com/

Bitcraft on Steam: https://store.steampowered.com/app/3454650/BitCraft_Online

WebAssembly: https://webassembly.org/

Flecs (ECS for C/C++): https://www.flecs.dev/flecs/

TigerBeetle: https://tigerbeetle.com/

CockroachDB: https://www.cockroachlabs.com/

Google Cloud Spanner: https://cloud.google.com/spanner

Erlang: https://www.erlang.org/

Apache Kafka: https://kafka.apache.org/

Tyler Cloutier on X: https://x.com/TylerFCloutier

Tyler Cloutier on LinkedIn: https://www.linkedin.com/in/tylercloutier/

--

Kris on Bluesky: https://bsky.app/profile/krisajenkins.bsky.social

Kris on Mastodon: http://mastodon.social/@krisajenkins

Kris on LinkedIn: https://www.linkedin.com/in/krisjenkins/

0:00 Intro

2:01 The Architecture of SpacetimeDB

5:01 Client-Side Prediction in Multiplayer Games

11:00 Reducers and Event Streaming

15:00 Launching Bitcraft on Steam

19:00 Debugging Launch Performance Problems

26:56 Hot-Swapping Server Code Without Downtime

30:01 In-Memory Tables and Query Optimization

42:00 Is SpacetimeDB Only For Games?

51:00 Performance Benchmarking For Web Workloads

55:00 Why Single-Threaded Beats Multi-Threaded

1:00:01 Multi-Version Concurrency Control Trade-offs

1:05:01 Sharding Data Across Multiple Nodes

1:10:56 Inter-Module Communication and Actor Models

1:17:00 Replication and the Write-Ahead Log

1:24:00 Supported Client Languages

1:29:00 Getting Started With SpacetimeDB

1:39:02 Outro

...more
View all episodesView all episodes
Download on the App Store

Developer VoicesBy Kris Jenkins

  • 5
  • 5
  • 5
  • 5
  • 5

5

30 ratings


More shows like Developer Voices

View all
Software Engineering Radio - the podcast for professional software developers by team@se-radio.net (SE-Radio Team)

Software Engineering Radio - the podcast for professional software developers

273 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

288 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

625 Listeners

Talk Python To Me by Michael Kennedy

Talk Python To Me

583 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

990 Listeners

CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

CoRecursive: Coding Stories

189 Listeners

Machine Learning Street Talk (MLST) by Machine Learning Street Talk (MLST)

Machine Learning Street Talk (MLST)

99 Listeners

Dwarkesh Podcast by Dwarkesh Patel

Dwarkesh Podcast

553 Listeners

Two's Complement by Ben Rady and Matt Godbolt

Two's Complement

31 Listeners

devtools.fm: Developer Tools, Open Source, Software Development by Andrew Lisowski, Justin Bennett

devtools.fm: Developer Tools, Open Source, Software Development

25 Listeners

Software Unscripted by Richard Feldman

Software Unscripted

29 Listeners

Oxide and Friends by Oxide Computer Company

Oxide and Friends

67 Listeners

Latent Space: The AI Engineer Podcast by Latent.Space

Latent Space: The AI Engineer Podcast

99 Listeners

Rust in Production by Matthias Endler

Rust in Production

25 Listeners

Fallthrough by Fallthrough Media

Fallthrough

13 Listeners