It’s become at truism in the past decade that building systems at scale, using nonrelational databases, requires giving up on the transactional guarantees afforded by the relational databases of yore; ACID transactional semantics are fine, but we all know you can’t have them all in a distributed system.
Tim Berglund explains that by designing your systems around a distributed log like Kafka, you can, in fact, achieve ACID semantics at scale. You can ensure that distributed write operations can be applied atomically, consistently, in isolation between services, and, of course, with durability. What seems to be a counterintuitive conclusion ends up being straightforward and achievable using existing technologies. An elusive set of properties becomes relatively easy to achieve with the right architectural paradigm underlying the application.
Tim Berglund is the senior director of developer experience with Confluent, where he serves as a teacher, author, and technology leader. Tim can frequently be found speaking at conferences internationally and in the United States. He’s the copresenter of various O’Reilly training videos on topics ranging from Git to distributed systems and is the author of Gradle Beyond the Basics. He tweets as @tlberglund, blogs very occasionally at Timberglund.com, and is the cohost of the DevRel Radio podcast. He lives in Littleton, Colorado, with the wife of his youth and their youngest child, the other two having mostly grown up.
©2019, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org