Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    "Turning the database inside out with Apache Samza" by Martin Kleppmann

    Strange Loop Conference

    9 HN recommenders · recommended in 13 months, 2015–2025

    YouTube

    47:43 · 206K views · Sep 21, 2014

    Martin Kleppmann argues that databases are global shared mutable state and proposes treating them as an ever-growing log of immutable facts. Derived data such as caches, indexes and views is then built by stream processors like Apache Samza. The talk draws on Kafka and LinkedIn's experience with commit logs.

    Commenters repeatedly cite it as the talk that reframed how they think about caching, derived data and event sourcing.

    Systems, Networks & SecurityDatabases & storageDistributed systems
    1. 14:36
      Distributed Systems 1.1: IntroductionMartin Kleppmann383K views • 6 years ago
    2. 1:19:35
      Lecture 1: IntroductionMIT 6.824: Distributed Systems924K views • 6 years ago
    3. 41:08
      "Transactions: myths, surprises and opportunities" by Martin KleppmannStrange Loop Conference84K views • 11 years ago
    4. 52:29
      "I See What You Mean" by Peter AlvaroStrange Loop Conference59K views • 11 years ago
    5. 28:15
      Martin Kleppmann | Kafka Summit SF 2018 Keynote (Is Kafka a Database?)Confluent, an IBM Company57K views • 8 years ago
    6. 42:31
      "Datafun: a functional query language" by Michael ArntzeniusStrange Loop Conference9.2K views • 9 years ago
    7. 1:03:48
      Greg Young - CQRS and Event Sourcing - Code on the Beach 2014Code on the Beach170K views • 12 years ago
    8. 59:56
      AWS re:Invent 2018: Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB (DAT401)Amazon Web Services468K views • 7 years ago
    9. 54:25
      Event Sourcing • Greg Young • GOTO 2014GOTO Conferences102K views • 11 years ago
    10. 54:52
      Introduction to NoSQL • Martin Fowler • GOTO 2012GOTO Conferences1M views • 13 years ago
    11. 48:04
      Greg Young — A Decade of DDD, CQRS, Event SourcingDomain-Driven Design Europe190K views • 10 years ago
    12. 53:43
      AWS re:Invent 2018: Amazon DynamoDB Under the Hood: How We Built a Hyper-Scale Database (DAT321)Amazon Web Services112K views • 7 years ago
    13. 54:54
      Breakout Session Presented by Dan Robinson of Heap at PGConf Silicon Valley 2015Citus Data14K views • 10 years ago
    14. 40:20
      "Testing Distributed Systems w/ Deterministic Simulation" by Will WilsonStrange Loop Conference56K views • 12 years ago
    15. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    16. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    17. 1:08:17
      How We've Scaled DropboxStanford372K views • 14 years ago
    18. 40:42
      Lucas Cavalcanti & Edward Wible - Exploring four hidden superpowers of DatomicClojureTV29K views • 11 years ago
    19. 1:06:24
      Rich Hickey: Deconstructing the DatabaseInfoQ106K views • 14 years ago
    20. 41:06
      "Unison: a new distributed programming language" by Paul ChiusanoStrange Loop Conference45K views • 7 years ago

    15 comments from Hacker News

    1. @chamomealAug 2025· in “Replacing a cache service with a database”

      Idk I think caching is a crucial part of many well-designed systems. There’s a lot of very cache-able data out there. If invalidating events are well defined or the data is fine being stale (week/month level dashboards, for example), that’s a fantastic reason to use a cache. I’d much rather just stuff those values in a cache than figure out any other more complicated solution. I also just think it’s a necessary evil of big systems. Sometimes you need derived data. You can even think about databases as a kind of cache: the “real” data is the stream of every event that ever updated data in the database! (Yes this stretching the meaning of cache lol) However I agree that caching is often an easy bandaid for a bad architecture. This talk on Apache Samza completely changed how I think about caching and derived data in general: this video And this interview has some interesting insights on the problems that caching faces at super large scale systems (twitter specifically): [LINK]

      Strongly recommendsView on HN
    2. @chamomealAug 2025· in “Replacing a cache service with a database”

      Hey OP you may have seen this already, but in case you didn’t see my other comment, you should definitely check out this talk by Martin Kleppman. this video It details Apache samza, which I didn’t totally grasp but it seems similar to what you’re talking about here. He talks about how if you could essentially use an event stream as your source of truth instead of a database, and you had a sufficiently powerful stream processor, you could define views on that data by consuming stream events. The end result is kind of like an auto-updating cache with no invalidation issues or race conditions. Need a new view on the data? Just define it and run the entire event stream through it. Once the stream is processed, that source of data is perpetually accurate and up-to-date. I’m not a database guy and most of this stuff is over my head, but I loved this talk and I think you should check it out! It’s the first thing I thought of when I read your post.

      Strongly recommendsView on HN
    3. @btownMay 2019· in “Ask HN: What overlooked class of tools should a self-taught programmer look into”

      The talk on "Turning the database inside-out" [0][1] by the author, Martin Kleppmann, is a fantastic intro to these dynamics, and it's something I'll always recommend to both experienced and inexperienced data modelers and backend developers. It goes pedagogically through the way things are typically done in a relational database in such a clear way that word-for-word it's one of the best tutorials I've seen... but it also weaves a narrative of "how can this be done better/more scalably/more reliably/more flexibly-to-business-needs" in pointing to a streaming/event-sourcing architecture. You may or not need the latter right away, but it's a fantastic tool to have in your toolbox to be able to say "ah, this new requirement feels like it would benefit hugely from this architecture." Especially for OP who's starting to think about the "why" of messaging queues, this could be a fantastically valuable first step. [0] this video [1] [LINK]

      Strongly recommendsView on HN
    4. @btownApr 2015· in “How Sift Science Rebuilt Its App on React and DropWizard”

      Since this is taking off a bit: Here's an excellent talk that provides some context to the Confluent article, and takes us through the thought process of simplifying convoluted database-cache-user interactions by thinking in terms of streams of derived data: this video . Also highly recommended.

      Strongly recommendsView on HN
    5. @lbradstreetMay 2018· in “GCP and Confluent partner to deliver a managed Apache Kafka service”

      Yes, I like to think of it as as the transaction log without any of the logic. If you’re interested, I can highly recommend Martin Kleppmann’s talk “Turning the database inside out” this video

      Strongly recommendsView on HN