Dominik Tornow Profile Banner
Dominik Tornow Profile
Dominik Tornow

@DominikTornow

Followers
8,133
Following
493
Media
1,371
Statuses
6,126

Founder @resonatehqio | Distributed Async•Await | Thinking in Distributed Systems |

Joined May 2019
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@DominikTornow
Dominik Tornow
3 months
I am thrilled to announce that @ManningBooks has decided to publish Thinking in Distributed Systems Writing this book was challenging but rewarding. Your support, your feedback and comments kept me motivated throughout. Thank you ❤️
Tweet media one
62
207
2K
@DominikTornow
Dominik Tornow
2 years
I am writing a book on Thinking in Distributed Systems 12 chapters, one chapter per month, full of diagrams, illustrations, and examples. #ThinkingInDistributedSystems #Goals2023
22
163
1K
@DominikTornow
Dominik Tornow
2 months
Fascinating paper: Event-Based Programming without Inversion of Control demonstrates how to implement a procedure-based programming model atop an event-driven execution model Great read if you want to explore async programming
Tweet media one
3
46
417
@DominikTornow
Dominik Tornow
3 months
Alex Petrov signing my copy of Database Internals at Systems Distributed '24 in New York City Happy Moments @ #SD24
Tweet media one
@DominikTornow
Dominik Tornow
6 months
Systems Distributed boasts an absolutely incredible line up of speakers, so time to brush up my database skills @ifesdjeen , the author of Database Internals, is a speaker, too 🏴‍☠️
Tweet media one
2
16
126
6
18
295
@DominikTornow
Dominik Tornow
1 year
'Principles of Distributed Database Systems' introduced me to the intriguing idea of 'logical' vs 'physical' levels. A replicated data item x has a number of copies x₁,...,xₙ. We refer to x as logical item and the replicas as physical items. #ThinkingInDistributedSystems
Tweet media one
3
29
271
@DominikTornow
Dominik Tornow
6 months
@willmcgugan Learn formal methods, like TLA+, p-lang, or Alloy, the most powerful thinking tool in software engineering Thinking above the code 🏴‍☠️
5
15
255
@DominikTornow
Dominik Tornow
5 months
New weekend read just arrived! Looking forward to timeless wisdom on taming concurrency 📚🔍
Tweet media one
15
24
250
@DominikTornow
Dominik Tornow
10 months
One year ago I decided to write 𝗧𝗵𝗶𝗻𝗸𝗶𝗻𝗴 𝗶𝗻 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗦𝘆𝘀𝘁𝗲𝗺𝘀. Today, I'm working on wrapping up the final chapter, all about Cloud & (Micro)Services Thank you for being part of this journey ❤️❄️
8
13
240
@DominikTornow
Dominik Tornow
1 year
The CAP Theorem is the most famous impossibility result in distributed systems. However, CAP may also be the most misunderstood statement about distributed systems So if someone drops the CAP bomb on you, remember what CAP actually says 💣👇 #ThinkingInDistributedSystems
4
45
239
@DominikTornow
Dominik Tornow
7 months
Writing this piece has been enlightening, though I'm admittedly running on fumes😭
Tweet media one
@DominikTornow
Dominik Tornow
7 months
Js is non-blocking i.e. maps virtual threads to one single physical thread & doesn't block when a virtual thread awaits My toy runtime is blocking i.e. maps a virtual thread to a physical thread & blocks when a virtual thread awaits Blog post incoming
Tweet media one
2
1
15
3
26
220
@DominikTornow
Dominik Tornow
2 years
First chapter of Thinking in Distributed Systems just dropped 🚀 Ready to dive into the world of distributed systems?! #ThinkingInDistributedSystems #Goals2023
3
24
217
@DominikTornow
Dominik Tornow
9 months
𝗛𝗼𝘄 𝘁𝗼 𝗴𝗲𝘁 𝘀𝘁𝗮𝗿𝘁𝗲𝗱 𝘄𝗶𝘁𝗵 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 𝗶𝗻 𝟮𝟬𝟮𝟰 The goal is not to simply know what the experts know but to think like the experts think 𝗕𝘂𝗶𝗹𝗱 𝗮 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝘀𝘆𝘀𝘁𝗲𝗺𝘀 𝗯𝗿𝗮𝗶𝗻 A distributed systems brain is
Tweet media one
6
33
213
@DominikTornow
Dominik Tornow
2 months
The author masterfully constructs the data structures powering a database from the ground up. Including the worlds simplest database consisting of two bash functions A joy to read
Tweet media one
@DominikTornow
Dominik Tornow
2 months
Wer Ordnung hält ist nur zu faul zum Suchen - Designing Data-Intensive Applications, @martinkl Time to embrace my dad's favorite proverb and refresh my knowledge on LSM Trees and SSTables P.S. One look at Dad's office and you'd know he wasn't lazy 👀
Tweet media one
2
3
51
3
24
205
@DominikTornow
Dominik Tornow
2 years
How did you get into distributed systems?! How did you level up?!
33
33
196
@DominikTornow
Dominik Tornow
9 days
Chapter 4 System models and order and time of my book Think Distributed Systems was just released Now available on MEAP ( @ManningBooks Early Access Program)
Tweet media one
@DominikTornow
Dominik Tornow
3 months
I am thrilled to announce that @ManningBooks has decided to publish Thinking in Distributed Systems Writing this book was challenging but rewarding. Your support, your feedback and comments kept me motivated throughout. Thank you ❤️
Tweet media one
62
207
2K
1
34
185
@DominikTornow
Dominik Tornow
1 year
Building failure tolerant distributed systems starts with understanding idempotence Idempotence refers to the property that requests can be retried without causing unintended consequences Who is responsible to guarantee idempotence?! The downstream or the upstream?!
Tweet media one
9
33
185
@DominikTornow
Dominik Tornow
2 years
I just finished crossing all the t’s and dotting all the i’s, the first chapter of Thinking in Distributed Systems drops Tuesday 📕 I am so excited and at the same time so anxious I don’t think I will get any sleep for the next two nights 😅
0
12
178
@DominikTornow
Dominik Tornow
1 year
I am thrilled to share that I've decided to start my own company in the cloud & distributed system space 🚀 Can't wait to share more details on the new venture and about its vision soon 🎉 #ThinkingInDistributedSystems #NewBeginnings
Tweet media one
20
7
180
@DominikTornow
Dominik Tornow
1 year
4th chapter of Thinking in Distributed Systems just dropped 🚀 We will explore message delivery and message processing Let's jump into ☝️at-most once, ☝️at-least once, & ✌️exactly once 💌 #ThinkingInDistributedSystems #Goals2023
Tweet media one
1
34
175
@DominikTornow
Dominik Tornow
3 months
I'm so happy about your responses to my book launch, your encouragement has lit up my day ✨ I've tried to reply to everyone who reached out, but if I missed your message, please know your kind words mean a lot. Thank you for your incredible support
@DominikTornow
Dominik Tornow
3 months
I am thrilled to announce that @ManningBooks has decided to publish Thinking in Distributed Systems Writing this book was challenging but rewarding. Your support, your feedback and comments kept me motivated throughout. Thank you ❤️
Tweet media one
62
207
2K
3
18
177
@DominikTornow
Dominik Tornow
10 months
Working on 𝘁𝗵𝗲 𝗳𝗶𝗻𝗮𝗹 𝗰𝗵𝗮𝗽𝘁𝗲𝗿 of Thinking in Distributed Systems. I will share my mental models for • 𝗰𝗹𝗼𝘂𝗱 𝗰𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴 • 𝗰𝗹𝗼𝘂𝗱 𝗻𝗮𝘁𝗶𝘃𝗲 𝗰𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴 • 𝘀𝗲𝗿𝘃𝗲𝗿𝗹𝗲𝘀𝘀 𝗰𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴 • 𝗺𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀
Tweet media one
5
14
170
@DominikTornow
Dominik Tornow
1 year
Thinking about Distributed Systems and Message Loss?! Although TCP is considered a reliable protocol, TCP will *not* save you!! 📨🕳️👇 #ThinkingInDistributedSystems #Goals2023
Tweet media one
1
25
169
@DominikTornow
Dominik Tornow
7 months
With the CAP Theorem out of the picture, is there a better framework for thinking about tradeoffs in distributed systems?! My favorite, Invariant confluence, is presented in the paper Coordination Avoidance in Database Systems (Link in blog)
Tweet media one
@AntithesisHQ
Antithesis
7 months
Great post by @DominikTornow about how the CAP theorem is not a useful framing for thinking about tradeoffs in distributed system design:
3
13
89
3
27
164
@DominikTornow
Dominik Tornow
5 months
If you're fascinated by hierarchies, organizations, and systems thinking, I highly recommend Thinking in Systems by Donella Meadows. A great read for understanding complex systems 🏴‍☠️
Tweet media one
@DominikTornow
Dominik Tornow
5 months
There is a great word in German, Identitätsstiftend, or Identity Establishing - Identity establishing properties are properties that contributes to establishing or defining an identity. What gives an object identity and integrity, especially if that object is made up of other
Tweet media one
3
2
22
2
25
163
@DominikTornow
Dominik Tornow
2 months
Software engineers sometimes ask how to level up their distributed systems skills. My recommendation: Research papers #ThinkingDistributedSystems
Tweet media one
11
15
151
@DominikTornow
Dominik Tornow
2 years
If you are into distributed systems @TigerBeetleDB is a treasure trove full of concepts to explore 🪙 For example, did you know that the beetle was inspired by the LMAX Architecture?!
1
27
141
@DominikTornow
Dominik Tornow
3 months
Systems Distributed '24 is a wrap, looking forward to Systems Distributed '25 🏴‍☠️ Next week, I'll share some highlights with references to papers and videos. Join me in exploring distributed systems together But first, some downtime 🌴
Tweet media one
5
9
136
@DominikTornow
Dominik Tornow
5 months
Personally, I do prefer the lens of Set Theory and First Order Logic to reason about concurrent, distributed systems Check out Leslie Lamport's A Science of Concurrent Programs (draft)
Tweet media one
@DominikTornow
Dominik Tornow
5 months
Distributed Computing through Combinatorial Topology offers a unique and fascinating perspective on distributed systems But I'm finding the combinatorial topology concepts challenging to wrap my head around-Doesn't come easy to me
Tweet media one
1
15
124
1
15
135
@DominikTornow
Dominik Tornow
22 days
My all time favorite resource in Systems Engineering and Systems Thinking is Nancy Leveson's book Engineering a Safer World Highly recommended
Tweet media one
@DominikTornow
Dominik Tornow
22 days
Amod references one of my favorite papers on the topic, Computational Thinking by Jeannette M. Wing Computational thinking is using abstraction, modeling the relevant aspects of a problem to make it tractable ❤️
Tweet media one
3
3
60
1
15
134
@DominikTornow
Dominik Tornow
1 year
Transactions are rooted in the world of database systems, not in the world of distributed systems. Why is the topic of transactions so prevalent in distributed systems? 🧐🧵 #ThinkingInDistributedSystems #Goals2023
Tweet media one
5
15
126
@DominikTornow
Dominik Tornow
3 months
Some actions can be made idempotent by frameworks, but not all actions The paper Fault Tolerance via Idempotence introduces the idempotence monad, making database actions idempotent by recording them within the same transaction Clever but not universal
Tweet media one
@DominikTornow
Dominik Tornow
3 months
I get frustrated by claims of automatic idempotence in frameworks or platforms. To handle idempotence of arbitrary actions correctly end to end, every upstream component has to cooperate Anyone claiming otherwise is overpromising and underdelivering
Tweet media one
2
7
50
1
21
128
@DominikTornow
Dominik Tornow
1 year
"Introduction to Embedded Systems" is a lucky find 📚 🍀 @LeeEdwardA is a fantastic author, the book explores cyber-physical systems and models of computation from first principles. #ThinkingInDistributedSystems #Goals2023
Tweet media one
@DominikTornow
Dominik Tornow
1 year
Once you get started, super, super hard to put this book down 📖 🤓 The author explores the nature of building models upon models or abstractions upon abstractions. The very essence of the creative process in software engineering ♥️
Tweet media one
3
8
61
4
17
127
@DominikTornow
Dominik Tornow
7 months
I have never been on hackernews news before ❤️
Tweet media one
8
6
126
@DominikTornow
Dominik Tornow
6 months
Systems Distributed boasts an absolutely incredible line up of speakers, so time to brush up my database skills @ifesdjeen , the author of Database Internals, is a speaker, too 🏴‍☠️
Tweet media one
@DominikTornow
Dominik Tornow
6 months
The 2nd 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 is is officially set in New York City for June 27-28 I'll be presenting 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗔𝘀𝘆𝗻𝗰 𝗔𝘄𝗮𝗶𝘁, a programming model for distributed applications Don’t miss out—get your tickets now! 🏴‍☠️
Tweet media one
1
12
61
2
16
126
@DominikTornow
Dominik Tornow
3 months
If you want to master the theory and practice of Failure Tolerance, start with Jim Gray's foundational paper A Transaction Model from 1980 Incredible mental clarity Link 👇
Tweet media one
1
21
125
@DominikTornow
Dominik Tornow
5 months
Distributed Computing through Combinatorial Topology offers a unique and fascinating perspective on distributed systems But I'm finding the combinatorial topology concepts challenging to wrap my head around-Doesn't come easy to me
Tweet media one
1
15
124
@DominikTornow
Dominik Tornow
7 months
I am super excited to publish my latest blog post 𝗧𝗵𝗲 𝗠𝗲𝗰𝗵𝗮𝗻𝗶𝗰𝘀 𝗼𝗳 𝗔𝘀𝘆𝗻𝗰 𝗔𝘄𝗮𝗶𝘁 🏴‍☠️ I figured a post exploring the mechanics of functions, promises, and the event loop would be a fun read Link to blog post & repo in replies
Tweet media one
2
20
122
@DominikTornow
Dominik Tornow
1 year
I am AWESTRUCK. One of the *best* presentations I have *ever* seen. @jorandirkgreef will change the way how you think of software engineering and distributed systems -- @TigerBeetleDB style #ThinkingInDistributedSystems #Goals2023
Tweet media one
3
23
121
@DominikTornow
Dominik Tornow
8 months
The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise -Edsger W. Dijkstra
Tweet media one
@DominikTornow
Dominik Tornow
8 months
Minimal mental models don't have to be vague, minimal mental models can be absolutely precise: A system contains a race condition if the concurrent composition of its processes contains some interleaving that is considered incorrect. 🏴‍☠️
2
1
10
4
22
119
@DominikTornow
Dominik Tornow
5 months
Do you want to excel in distributed systems?! My advice: Learn formal methods How to get started?! Formal methods are powerful thinking tools, helping you analyze complex problems with accurately and concisely A few basic concepts are enough to get started to think about
Tweet media one
1
26
117
@DominikTornow
Dominik Tornow
2 years
A distributed system playground by @flydotio in collaboration with @jepsen_io Super cool🎈
2
20
115
@DominikTornow
Dominik Tornow
9 months
I just finished Chapter 12, the 𝗳𝗶𝗻𝗮𝗹 𝗰𝗵𝗮𝗽𝘁𝗲𝗿 of Thinking in Distributed Systems 🎉 Experiencing a mix of emotions, a touch overwhelmed, but super happy 😭❤️ Literally turning the last page of 2023 #ThinkingInDistributedSystems
Tweet media one
6
5
115
@DominikTornow
Dominik Tornow
1 year
Raft Consensus Challenge ⛓️ We have a Raft cluster with 3 nodes, each maintaining a replica of the log. Which node is the leader for term 3?! What gives it away?! #ThinkingInDistributedSystems #ConsensusChallenge
Tweet media one
9
17
110
@DominikTornow
Dominik Tornow
1 year
6th chapter of Thinking in Distributed Systems just dropped 🚀 We will explore distributed transactions and the most well-known atomic commit protocol: The 2 Phase Commit Protocol #ThinkingInDistributedSystems #Goals2023
Tweet media one
0
25
108
@DominikTornow
Dominik Tornow
2 years
I am thoroughly impressed with @modal_labs and their developer experience, it's truly incredible Check out the New York Cab dataset example, analyzing gigabytes of data using @duckdb – in parallel, in the cloud, all by adding a python decorator 🔥
2
12
106
@DominikTornow
Dominik Tornow
3 months
Thanks to everyone who expressed interest in the live stream on Event-Driven Architecture 🎉 We'll cover core concepts and defining characteristics, focusing on the fundamentals Stay tuned for the details 📅
Tweet media one
@DominikTornow
Dominik Tornow
3 months
Anybody interested in a live stream on Event-Driven Architecture? We'll take a principled look at its core concepts, building a solid understanding of its defining characteristics. No 'why event-driven is better', just the fundamentals
Tweet media one
16
8
100
2
12
107
@DominikTornow
Dominik Tornow
2 years
3rd chapter of Thinking in Distributed Systems just dropped 🚀 We will explore failure, failure tolerance, and failure handling Ready to think about failure?! 🔥🧯 #ThinkingInDistributedSystems #Goals2023
2
17
107
@DominikTornow
Dominik Tornow
1 year
The next generation of reliable and scalable distributed systems will be based on the fundamental models computation: functions & promises Introducing Durable Promises, an open standard for reliable and scalable distributed systems
Tweet media one
7
22
106
@DominikTornow
Dominik Tornow
13 days
Sometimes idempotence is straightforward e.g. in the case of transactions The paper Fault Tolerance via Idempotence features an idempotence monad recording the result of a step alongside the step itself Not into monads? A Python decorator can work too
Tweet media one
@DominikTornow
Dominik Tornow
13 days
Any project that promises to guarantee exactly-once processing for you effectively promises to guarantee idempotence of arbitrary side effects for you That's impossible Idempotence is an end-to-end guarantee, you need the cooperation of the upstream system(s) Technologies
Tweet media one
3
1
17
0
9
107
@DominikTornow
Dominik Tornow
7 months
While building 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗔𝘀𝘆𝗻𝗰 𝗔𝘄𝗮𝗶𝘁, I studied lots of academic papers on async await & related concepts My goal? To craft a programming model that is coherent, guaranteeing a delightful developer experience Some insightful papers for your weekend
Tweet media one
Tweet media two
Tweet media three
Tweet media four
5
16
106
@DominikTornow
Dominik Tornow
4 months
The evolution of concurrent programming models 🧵 Here's a curated list of seminal papers that explore the two dominant models: thread-based & event-based concurrency. These models converge in async await, combining the best of both worlds.
Tweet media one
1
23
106
@DominikTornow
Dominik Tornow
11 months
Maybe I try to faithfully adapt Jim Gray's paper 𝗔 𝗧𝗿𝗮𝗻𝘀𝗮𝗰𝘁𝗶𝗼𝗻 𝗠𝗼𝗱𝗲𝗹 to Durable Function & Durable Promises instead of transactions 𝗔 𝗗𝘂𝗿𝗮𝗯𝗹𝗲 𝗔𝘀𝘆𝗻𝗰 𝗔𝘄𝗮𝗶𝘁 𝗠𝗼𝗱𝗲𝗹
Tweet media one
@DominikTornow
Dominik Tornow
2 years
One of the *best* papers I have *ever* read - not being dramatic - is Jim Gray's "A Transaction Model" from 1980 ❤️ Crystal clear ❤️ Rigorous yet approachable I am completely enamored 🫠
1
14
99
1
14
103
@DominikTornow
Dominik Tornow
2 years
Hot off the press, my weekend read arrived today: @msftorleans for developers 🤓📚
Tweet media one
3
16
98
@DominikTornow
Dominik Tornow
1 year
I am working on a proof of concept, @TigerBeetleDB style. The POC is written in Golang but does not use Golang's user space concurrency (go functions) Instead, the POC uses a custom event loop, coroutine-like concurrency, & implements deterministic simulation testing 🔥
5
12
102
@DominikTornow
Dominik Tornow
2 years
One of the *best* papers I have *ever* read - not being dramatic - is Jim Gray's "A Transaction Model" from 1980 ❤️ Crystal clear ❤️ Rigorous yet approachable I am completely enamored 🫠
1
14
99
@DominikTornow
Dominik Tornow
2 months
An incredibly concise yet accurate description of Async Await: A programming abstraction that provides a conditional blocking wait operation
Tweet media one
@DominikTornow
Dominik Tornow
2 months
There are many insightful resources about Event-based Programming-but finding them can be challenging Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems is a fantastic addition to yesterday's read
Tweet media one
1
13
97
1
19
100
@DominikTornow
Dominik Tornow
8 months
I got Transaction Processing: Concepts and Techniques by Jim Gray and Andreas Reuter today 🏴‍☠️ 𝗙𝘂𝗻 𝗙𝗮𝗰𝘁 The ACID acronym was coined by Andreas Reuter and is a pun on the fact that his wife hates sweet things and loves vinegar 🧪
Tweet media one
2
11
99
@DominikTornow
Dominik Tornow
3 months
Anybody interested in a live stream on Event-Driven Architecture? We'll take a principled look at its core concepts, building a solid understanding of its defining characteristics. No 'why event-driven is better', just the fundamentals
Tweet media one
@DominikTornow
Dominik Tornow
3 months
Great summary of event-driven architecture impacting the developer experience in the paper Event-Based Programming without Inversion of Control
Tweet media one
3
9
82
16
8
100
@DominikTornow
Dominik Tornow
9 months
Check out my new blog post introducing 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗔𝘀𝘆𝗻𝗰 𝗔𝘄𝗮𝗶𝘁 Distributed Async Await extends the traditional async await programming model and makes distributed computing a first-class citizen
Tweet media one
1
20
96
@DominikTornow
Dominik Tornow
20 days
Distributed systems require a dual perspective: The global view and local view. In his dissertation, @famontesi calls breaking down the global (choreographic) view into the local (endpoint) views endpoint projection Great mental model to reason about distributed systems
Tweet media one
Tweet media two
1
12
98
@DominikTornow
Dominik Tornow
2 months
Jim Gray's paper A Transaction Model is a masterclass in thinking above the code. With a minimal system and failure model, Gray conveys the essence of transactions with exceptional clarity Gaining knowledge & understanding doesn't rely on implementing
Tweet media one
@DominikTornow
Dominik Tornow
2 months
As software engineers, we romanticize implementing something ourselves-as though implementing guarantees mastery Yet our learning projects fall flat: buggy, underspecified, unexplored edge cases, leading to misguided conclusions Think above the code
Tweet media one
1
1
11
0
13
98
@DominikTornow
Dominik Tornow
2 months
There are many insightful resources about Event-based Programming-but finding them can be challenging Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems is a fantastic addition to yesterday's read
Tweet media one
@DominikTornow
Dominik Tornow
2 months
Fascinating paper: Event-Based Programming without Inversion of Control demonstrates how to implement a procedure-based programming model atop an event-driven execution model Great read if you want to explore async programming
Tweet media one
3
46
417
1
13
97
@DominikTornow
Dominik Tornow
1 year
Personal update. After two years, I have decided to leave @temporalio . My last day is Friday 5/19 A bittersweet moment, I am sad to leave but I am also excited for the next adventure First I will take a breath & fight a tear 😮‍💨 🥲 ♥️
Tweet media one
15
1
96
@DominikTornow
Dominik Tornow
1 year
Prediction: Within 3 years, Durable Executions a.k.a Workflows as Code will become a commodity. Every technology stack will offer Durable Executions, either as a library, compiler extension, or runtime extension. 🔥 #DurableExecutions #DistributedSystems
8
17
91
@DominikTornow
Dominik Tornow
9 months
New blog post dropped My mental models of 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀, 𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝘁, 𝗮𝗻𝗱 𝗣𝗮𝗿𝗮𝗹𝗹𝗲𝗹 𝗖𝗼𝗺𝗽𝘂𝘁𝗮𝘁𝗶𝗼𝗻
@DominikTornow
Dominik Tornow
9 months
There are 𝟯 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝗱𝗶𝗺𝗲𝗻𝘀𝗶𝗼𝗻𝘀 in play: • Synchronous vs Asynchronous • Sequential vs Concurrent • Serial vs Parallel These terms and concepts are not interchangeable #ThinkingInDistributedSystems #Zelda
Tweet media one
3
13
74
0
17
96
@DominikTornow
Dominik Tornow
2 years
I am absolutely awestruck, I played with @unisonweb yesterday and I have no words, like peeking into the future 🤯
Tweet media one
5
11
93
@DominikTornow
Dominik Tornow
5 months
The book starts with a fundamental insight: Concurrency isn't something you can "abstract away", concurrency is an irreducible property
Tweet media one
Tweet media two
@DominikTornow
Dominik Tornow
5 months
New weekend read just arrived! Looking forward to timeless wisdom on taming concurrency 📚🔍
Tweet media one
15
24
250
4
8
92
@DominikTornow
Dominik Tornow
2 years
Thinking in Distributed Systems can be challenging and sometimes outright confusing. Short thread on my favorite thinking tool. #ThinkingInDistributedSystems #Goals2023 🤓👇
1
9
88
@DominikTornow
Dominik Tornow
1 year
If you are looking for the ideal blend of approachable introduction & academic rigor check out @lindsey 's lecture series on distributed systems. 🍸🎓 Today's featured video: Introduction to partitioning & consistent hashing
2
13
87
@DominikTornow
Dominik Tornow
7 months
For my upcoming blog post 𝗧𝗵𝗲 𝗠𝗲𝗰𝗵𝗮𝗻𝗶𝗰𝘀 𝗼𝗳 𝗔𝘀𝘆𝗻𝗰 𝗔𝘄𝗮𝗶𝘁, I relied on numerous sources to come to a sound mental model of Async Await, functions, and promises. Find a curated collection in the replies 🏴‍☠️
Tweet media one
2
12
91
@DominikTornow
Dominik Tornow
3 months
Mastering Failure Tolerance in Distributed Systems Part 1 A defining characteristic of distributed systems is the possibility of partial failure [1]. A key requirement is failure tolerance i.e. an execution with failures is equivalent to some execution without failures [2]. A
Tweet media one
2
15
90
@DominikTornow
Dominik Tornow
5 months
Turing Awardee Leslie Lamport on time and causality. A concise articulation why time is not linear and why concurrency cannot be fully abstracted Link in reply
Tweet media one
@DominikTornow
Dominik Tornow
5 months
New weekend read just arrived! Looking forward to timeless wisdom on taming concurrency 📚🔍
Tweet media one
15
24
250
4
14
89
@DominikTornow
Dominik Tornow
1 year
5th chapter of Thinking in Distributed Systems just dropped 🚀 We will explore the magic of transactions: Transactions allow you to pretend that concurrency or failure does not even exist! 🪄 💫 #ThinkingInDistributedSystems #Goals2023
Tweet media one
2
10
85
@DominikTornow
Dominik Tornow
3 years
In his paper "Verifying Strong Eventual Consistency in Distributed Systems", @martinkl presents an accurate, concise, and delightfully elegant model of distributed systems. How accurate you ask? Formally verified with @isaprover (My favorite: Section 5)
0
17
85
@DominikTornow
Dominik Tornow
2 months
My Systems Distributed talk on Distributed Async Await premiers Wednesday 8/14 at 10am PST Join me live in the chat to discuss and ask questions 🏴‍☠️
Tweet media one
2
11
85
@DominikTornow
Dominik Tornow
10 months
My 𝗯𝗿𝗲𝗮𝗸𝘁𝗵𝗿𝗼𝘂𝗴𝗵 moment in understanding distributed systems was @martinkl 's post How to do distributed locking: A system needs to guarantee global invariants but every component has only local knowledge informing its actions What was your breakthrough moment?
Tweet media one
7
5
85
@DominikTornow
Dominik Tornow
1 month
A billion SMT queries a day by Neha Rungta SMT solvers are not only used to solve word puzzles but are used by the largest cloud provider to prove correctness to its end users.
Tweet media one
@DominikTornow
Dominik Tornow
1 month
I had a lot of fun exploring solving a Word Search puzzle with Python and Z3. Anybody interested to read about encoding a problem with an SMT solver and finding a solution in the next issue of my newsletter The Weekend Read?!
0
2
6
2
6
85
@DominikTornow
Dominik Tornow
9 months
🌀𝗕𝘂𝗶𝗹𝗱𝗶𝗻𝗴 𝗮 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝘀𝘆𝘀𝘁𝗲𝗺𝘀 𝗯𝗿𝗮𝗶𝗻 🌀 𝗤 How should we think about distributed software systems?! 𝗔 As a 𝗦𝘁𝗮𝘁𝗲 𝗠𝗮𝗰𝗵𝗶𝗻𝗲. The behavior is a sequence of states and a step transitions the distributed system from the previous state
Tweet media one
5
16
84
@DominikTornow
Dominik Tornow
2 years
"Characterizing things by the role they play" #ThinkingInDistributedSystems #Goals2023 ➕➖✖️➗👇
Tweet media one
3
9
83
@DominikTornow
Dominik Tornow
9 months
The Terms 𝗮𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 and 𝗻𝗼𝗻-𝗯𝗹𝗼𝗰𝗸𝗶𝗻𝗴 are often used synonymously, however, they are not 🛑 Understanding async and non-blocking requires us to reason across across two levels: execution & runtime 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻 𝗟𝗲𝘃𝗲𝗹 Asynchronous executions
Tweet media one
7
14
78
@DominikTornow
Dominik Tornow
3 months
Great summary of event-driven architecture impacting the developer experience in the paper Event-Based Programming without Inversion of Control
Tweet media one
3
9
82
@DominikTornow
Dominik Tornow
1 year
Distributed transactions, that is, atomic commitment, look a lot like a distributed consensus problem: All participants must either commit or abort a transaction 👤👤✔️❌ However, atomic commitment is quite different from consensus 👇 #ThinkingInDistributedSystems #goals2023
Tweet media one
3
20
82
@DominikTornow
Dominik Tornow
8 months
A database implementing Viewstamped Replication with Protocol Aware Recovery, zero dependencies, static memory allocation, async i/o, in @ziglang Testing every corner case via deterministic simulation testing When I grow up, I wanna be as cool as @TigerBeetleDB 🏴‍☠️✌️
Tweet media one
2
12
81
@DominikTornow
Dominik Tornow
2 years
I learn a lot about systems and distributed systems from academic papers - but learning how to read papers is a challenge in itself How did you get started reading papers, how did you level up?! #ThinkingInDistributedSystems #Goals2023
10
6
82
@DominikTornow
Dominik Tornow
2 years
Databases & Transactions?! ACIDic facts that melt your mind 🧪👇
Tweet media one
1
10
78
@DominikTornow
Dominik Tornow
8 months
I am looking into the origins of async await and studying "A poor man's concurrency monad" Adapting to thinking in functions, types, and monads challenges me-but the paper truly is a pearl
Tweet media one
2
9
79
@DominikTornow
Dominik Tornow
2 months
Here’s another example of thinking above the code: the TLA+ spec for 2-Phase Commit. Just 175 lines (mostly comments) represent a complete specification of its behavior, covering each and every edge case. Beat that with "implementing it yourself"
Tweet media one
@DominikTornow
Dominik Tornow
2 months
Jim Gray's paper A Transaction Model is a masterclass in thinking above the code. With a minimal system and failure model, Gray conveys the essence of transactions with exceptional clarity Gaining knowledge & understanding doesn't rely on implementing
Tweet media one
0
13
98
1
11
78
@DominikTornow
Dominik Tornow
2 years
Enjoying a week at Lake Tahoe, so this is going to be my writing den for the next few days ❄️ #ThinkingInDistributedSystems #Goals2023
Tweet media one
5
4
76
@DominikTornow
Dominik Tornow
5 months
The TLA+ Conf 2024 playlist dropped 🎉 There goes my day ❤️
0
13
77
@DominikTornow
Dominik Tornow
10 months
Working on the final Chpt of Thinking in Distributed Systems, all about Cloud, Serverless, and (Micro)Services Writing hits different with a snowy background ❄️❤️ #ThinkingInDistributedSystems
Tweet media one
3
10
76
@DominikTornow
Dominik Tornow
1 year
The Unreasonable Effectiveness of Consensus in the Distributed Systems Why is distributed consensus so significant in the context of distributed systems? Consensus is the bedrock that allows us to 𝗴𝗲𝗻𝗲𝗿𝗶𝗰𝗮𝗹𝗹𝘆 transform a component into a fault-tolerant component.
Tweet media one
1
10
76
@DominikTornow
Dominik Tornow
9 months
There are 𝟯 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝗱𝗶𝗺𝗲𝗻𝘀𝗶𝗼𝗻𝘀 in play: • Synchronous vs Asynchronous • Sequential vs Concurrent • Serial vs Parallel These terms and concepts are not interchangeable #ThinkingInDistributedSystems #Zelda
Tweet media one
3
13
74
@DominikTornow
Dominik Tornow
3 months
"Just make your action idempotent". The troubled story of Idempotence Distributed systems are subject to partial failure. The solution: retries; the prerequisite: idempotence. To guarantee exactly once processing semantics, we combine at least once processing guarantees and
Tweet media one
4
18
75
@DominikTornow
Dominik Tornow
1 year
Durable Executions are not a novel concept, Durable Executions have been around as Sagas The "breakthrough"? State is being managed on a platform level, transparent to the application level Check out this visual explanation by @PatHelland in Building on Quicksand
Tweet media one
5
11
76
@DominikTornow
Dominik Tornow
3 months
Systems Distributed '24 was without a doubt the best conference I’ve attended in my 20+ years career 🏴‍☠️ Thrilled to present Distributed Async Await to this incredible audience. An unforgettable experience
Tweet media one
@DominikTornow
Dominik Tornow
3 months
Systems Distributed '24 is a wrap, looking forward to Systems Distributed '25 🏴‍☠️ Next week, I'll share some highlights with references to papers and videos. Join me in exploring distributed systems together But first, some downtime 🌴
Tweet media one
5
9
136
2
16
76
@DominikTornow
Dominik Tornow
1 year
What is the difference between asynchronous & concurrent?! #ThinkingInDistributedSystems
21
9
76
@DominikTornow
Dominik Tornow
9 months
Over the next few days, I'll share some mental models and resources about distributed systems that I wish I had known about when starting my journey 𝗟𝗲𝘁'𝘀 𝗯𝘂𝗶𝗹𝗱 𝗮 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝘀𝘆𝘀𝘁𝗲𝗺𝘀 𝗯𝗿𝗮𝗶𝗻 𝘁𝗼𝗴𝗲𝘁𝗵𝗲𝗿 #Goals2024
Tweet media one
@DominikTornow
Dominik Tornow
9 months
𝗛𝗼𝘄 𝘁𝗼 𝗴𝗲𝘁 𝘀𝘁𝗮𝗿𝘁𝗲𝗱 𝘄𝗶𝘁𝗵 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 𝗶𝗻 𝟮𝟬𝟮𝟰 The goal is not to simply know what the experts know but to think like the experts think 𝗕𝘂𝗶𝗹𝗱 𝗮 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝘀𝘆𝘀𝘁𝗲𝗺𝘀 𝗯𝗿𝗮𝗶𝗻 A distributed systems brain is
Tweet media one
6
33
213
1
6
75
@DominikTornow
Dominik Tornow
4 months
I can't believe it took me this long to realize that a non-distributed, single-process system considering crash failures and recovery shares so many characteristics with distributed systems.
@DominikTornow
Dominik Tornow
5 months
Is a non-distributed app that mitigates process crashes by restarting and recovering a distributed app?! On crash, a process restarts and recovers. Therefore, the app involves multiple processes (restart) that are coordinated (recover) A characteristic of distributed systems
Tweet media one
7
5
42
4
9
75
@DominikTornow
Dominik Tornow
8 months
If you are interested in exploring 𝗥𝗮𝗰𝗲 𝗖𝗼𝗻𝗱𝗶𝘁𝗶𝗼𝗻𝘀 & 𝗗𝗮𝘁𝗮 𝗥𝗮𝗰𝗲𝘀, I recommend Testing for Race Conditions via SMT Solving Not only will you find rock solid definitions but also one of the coolest applications of SMT solving 🪨🧊
Tweet media one
@DominikTornow
Dominik Tornow
8 months
New video dropped on @resonatehqio 's YouTube channel 𝗥𝗮𝗰𝗲 𝗖𝗼𝗻𝗱𝗶𝘁𝗶𝗼𝗻𝘀 Frequently race conditions are not formally defined but introduced in terms of an example. In this video, we will explore an actual definition.
Tweet media one
2
2
27
0
17
74
@DominikTornow
Dominik Tornow
11 months
If you want to learn how to build safer systems in less time, listen to @jorandirkgreef , CEO and founder of @TigerBeetleDB : Introducing TigerStyle
@DominikTornow
Dominik Tornow
11 months
Top priority for Resonate is reliability-reflected in our testing strategy Server Side 💣 Internal Deterministic Simulation Testing 💣 External Simulation Testing Includes Linearizability checks SDK Side 💣 Exhaustive Test Case Generation Based on State Transition Table
Tweet media one
2
2
13
3
18
74