Sign in

Dominik Tornow

@dominiktornow.bsky.social
3.1K followers 39 following 617 posts

Founder Resonate HQ | Distributed Async Await | Thinking in Distributed Systems | dtornow.substack.com

PostsRepliesMedia
Reposted by Dominik Tornow
Hillel @hillelwayne.com · 29/07/2026
I am delighted to announce that after 5 years of work, 15 early releases, 50,000 words written, and 100,000 more deleted, *Logic for Programmers* is now complete and available in print! Blog post announcement: www.hillelwayne.com/post/lfp/ Website: logicforprogrammers.com
logicforprogrammers.com
Logic for Programmers
Practical math for the working programmer.
1020348
Reposted by Dominik Tornow
ScyllaDB @scylladb.com · 10/07/2026
@dominiktornow.bsky.social always brings highly technical insights to our conferences. Join Dominik at @P99CONF to learn how a closed loop guided an agent from prompt to a production-grade implementation of @resonatehqio.bsky.social on ScyllaDB. www.p99conf.io?latest_sfdc_... #ScyllaDB #P99CONF
031
Dominik Tornow @dominiktornow.bsky.social · 11/02/2026
Systems engineering rests on accurate and concise mental models. Libraries, frameworks, or platforms come and go, but principles are forever Join me at Monster Scale Summit
060
Dominik Tornow @dominiktornow.bsky.social · 29/01/2026
Quint is the specification language you've been looking for quint-lang.org
quint-lang.org
Quint
Executable specs for reliable systems
051
Dominik Tornow @dominiktornow.bsky.social · 25/01/2026
I am wondering if Claude Code excels if a specification includes exhaustive pre and post conditions. Without stating how to implement a function, we can still rigorously specify what the function does (example in Dafny)
040
Dominik Tornow @dominiktornow.bsky.social · 11/01/2026
My current mental model of coding with agents: Human attention moves to the edges
151
Dominik Tornow @dominiktornow.bsky.social · 10/01/2026
This diagram captures the core thesis of A Note on Distributed Computing: Distributed and non-distributed executions are fundamentally different beasts Distribution fragments execution
072
Dominik Tornow @dominiktornow.bsky.social · 10/01/2026
Distributed System ≠ Distributed Execution A distributed system is a collection of concurrent components that communicate by exchanging messages A distributed execution is an execution that is distributed across those components The dist sys is the stage for the dist exe
060
Dominik Tornow @dominiktornow.bsky.social · 01/01/2026
My advice for software engineers in 2026 Get into formal methods Not to prove your system correct but to prove your thinking correct
070
Dominik Tornow @dominiktornow.bsky.social · 31/12/2025
One more condition (j < i + k) gives us bounded idempotence. Think Kafka retention: a request is idempotent only as long as the system remembers the request
020
Dominik Tornow @dominiktornow.bsky.social · 30/12/2025
Systems don't pause between retries If action a was applied at step i, then replaying a at any future step j is a no-op Idempotence is a property of traces
1102
Dominik Tornow @dominiktornow.bsky.social · 30/12/2025
The mathematical definition of idempotence will fail you in production Not this Applying a request n times has no effect beyond the first application But that Applying a request n times, regardless of how the state has evolved in between applications, has no effect beyond the first application
151
Dominik Tornow @dominiktornow.bsky.social · 28/12/2025
Fun with Types: The Shape of Durable Executions Haskell's type system is a great vehicle for formalizing @resonatehqio.bsky.social 's core execution model, execute_until_blocked The shape of the conversation between User Program, Worker, and Server just fell out of the type system
090
Dominik Tornow @dominiktornow.bsky.social · 22/12/2025
Property-based Testing and Deterministic Simulation Testing change how you think about invariants: First you defend the invariants your system has. Then you design the invariants your system should have Invariants become aspirational, not just defensive
040
Dominik Tornow @dominiktornow.bsky.social · 21/12/2025
Event-driven. One of the most used terms in software engineering but with no formal definition I've looked. I've found nothing Please drop papers
131
Dominik Tornow @dominiktornow.bsky.social · 18/12/2025
Vibe coding forces the question: Where do guarantees come from?! Platform Property P is certain. All valid programs have P Think memory-safe Rust program Application Property P is possible. Some valid programs have P Think memory-safe C program
010
Dominik Tornow @dominiktornow.bsky.social · 14/12/2025
Deterministic Simulation Testing turns vibe coding into verified coding LLMs are great at writing code, but just like their human counterparts, they miss edge cases DST doesn't DST is the fitness function your coding agent needs to maximize
010
Dominik Tornow @dominiktornow.bsky.social · 12/12/2025
The @resonatehqio.bsky.social server is responsible for • Coordination (incl scheduling) • Supervision (incl recovery) That is, the server is responsible for scheduling a distributed execution onto a distributed system and reschedule parts of the execution when parts of the system fail
020
Dominik Tornow @dominiktornow.bsky.social · 03/12/2025
Durable Executions, defined A crash? An interruption. A sleep? An interruption. Same suspension. Same resumption. Same solution. The full definition: 12 words. The minimal implementation: 50 lines. journal.resonatehq.io/p/durable-ex...
journal.resonatehq.io
Durable Executions, defined
Suspend anytime, resume anywhere
020
Dominik Tornow @dominiktornow.bsky.social · 03/12/2025
See the Write Last, Read First rule in action, in Lisbon, today at 6:00pm Join Matklad and me for an evening of systems engineering luma.com/7d47f4et
luma.com
TigerBeetle in Lisbon · Luma
Join us for the Lisbon chapter of TigerBeetle's 1000x World Tour, hosted by Matklad and Jihyun of TigerBeetle. 6:00pm - Arrive and settle in 6:30pm - Welcome &…
010
Dominik Tornow @dominiktornow.bsky.social · 03/12/2025
Durable Executions, defined Every durable execution framework: write normal code, get fault tolerance. Yet nobody defines what normal code or fault tolerance are The alternative: a rigorous definition, grounded in first principles, and a minimal implementation Dropping today
021
Dominik Tornow @dominiktornow.bsky.social · 02/12/2025
In distributed systems, you can never know "what is", you can only know "what was" Even in consensus, you never know the current value, you only know the value at an offset in the log Every decision is made on a stale understanding of the world
171
Dominik Tornow @dominiktornow.bsky.social · 01/12/2025
Resonate's Distributed Async Await doesn't add events, event types, event logs, or complex replay machinery. Resonate makes promises durable. That's it.
000
Dominik Tornow @dominiktornow.bsky.social · 01/12/2025
Distributed Async Await, @resonatehqio.bsky.social Durable Executions framework, rests on one mechanic: skip-when-done - Checkpoint before the function starts - Checkpoint after the function returns - On restart, skip what's done Everything else follows from there Dead simple
010
Dominik Tornow @dominiktornow.bsky.social · 28/11/2025
Join Matklad and me in Lisbon next week for an evening of systems engineering with @tigerbeetle.com and @resonatehqio.bsky.social I will talk about Write Last, Read First: How to keep systems consistent without transactions bsky.app/profile/tige...
021
Dominik Tornow @dominiktornow.bsky.social · 26/11/2025
Dijkstra argued against unconstrained goto, not goto itself: The unbridled use of goto statements makes it terribly hard to find a meaningful set of coordinates in which to describe the process progress Unconstrained Event-Driven Architecture is distributed goto
020
Dominik Tornow @dominiktornow.bsky.social · 25/11/2025
Today's GoTo is Event-Driven Architecture (Read first. Yell later)
110
Dominik Tornow @dominiktornow.bsky.social · 24/11/2025
Why your code should crash more Assertions seem extreme: they don't throw exceptions, they crash the process. Yet continuing after a violation is worse than crashing. Shut it down. Enable assertions in production dtornow.substack.com/p/assert-in-...
021
Reposted by Dominik Tornow
Gunnar Morling @gunnarmorling.dev · 20/11/2025
📝 Blogged: "Building a Durable Execution Engine With SQLite" Exploring the fundamentals of DE, based on a minimal engine built from scratch, using #SQLite as an execution log, and modern #Java (👋 virtual threads). 👉https://www.morling.dev/blog/building-durable-execution-engine-with-sqlite/
13510
Dominik Tornow @dominiktornow.bsky.social · 16/11/2025
The Distributed Async Await protocol builds on two (abstract) primitives: Execute until Blocked Make progress by taking one incremental step Send Communicate by sending one message Enabling any durability model on any transport
020
Dominik Tornow @dominiktornow.bsky.social · 15/11/2025
When durable and ephemeral timelines collide What happens when your agent crashes while the LLM is streaming tokens to the user?! Chapter 4: Lifetime Management in Agentic Systems
010
Dominik Tornow @dominiktornow.bsky.social · 12/11/2025
Mastering Continuations = Mastering Control Flow A good starting point to understand continuations and programming with continuations is Control structures in programming languages: from goto to algebraic effects by Xavier Leroy
040
Dominik Tornow @dominiktornow.bsky.social · 12/11/2025
Orchestration vs Choreography Forget the clumsy analogies Orchestration The platform manages the continuation Choreography The application manages the continuation Everything else is noise
020
Reposted by Dominik Tornow
TigerBeetle @tigerbeetle.com · 06/11/2025
The Write Last, Read First Rule How to guarantee strict serializability across database systems A special guest post from @dominiktornow.bsky.social tigerbeetle.com/blog/2025-11...
011
Dominik Tornow @dominiktornow.bsky.social · 05/11/2025
Partial Failure & Partial Retry RPCs create recovery boundaries: When an execution crashes, only the executions within its recovery boundaries restart Executions in different recovery boundaries (across RPCs) continue running.
010
Dominik Tornow @dominiktornow.bsky.social · 05/11/2025
Partial Failure but Total Retry?! If we follow the familiar model of chained HTTP calls then a failure in the chain forces a restart from the failure point This works for short-lived, cheap executions, but collapses under long-lived, expensive ones
000
Dominik Tornow @dominiktornow.bsky.social · 03/11/2025
From the terminal to the cloud, from prototype to production Learn how agents scale beyond a single machine and master identity, coordination, and recovery Build a recursive, distributed Deep Research Agent with @resonatehqio.bsky.social + OpenAI—in under 120 lines Chapter 3 is live
000
Dominik Tornow @dominiktornow.bsky.social · 02/11/2025
A Promise doesn’t just represent eventual completion A Promise also represents eventual invocation We just tend to forget the latter
000
Dominik Tornow @dominiktornow.bsky.social · 01/11/2025
I'm experimenting with animations for the 3rd chapter of Systems Engineering for Agentic Applications This shows the call graph of the recursive, distributed Research Agent unfolding over time, highlighting durable promises I dig the result but they are a lot of work 🥲
000
Dominik Tornow @dominiktornow.bsky.social · 01/11/2025
Weekend Treat ... sorry ... Read 🎃 Formal models are magic. Not only as a verification tool but as a thinking tool, lifting the fog of uncertainty and assumption Their magic lies in rigorous, ruthless, relentless clarity
020
Dominik Tornow @dominiktornow.bsky.social · 30/10/2025
Two sentences explain I/O better than any CS course If an expression yields an effect, it percolates through the program to the top, with the context stored as a continuation. An external authority handles the effect and passes the result back to the continuation.
010
Dominik Tornow @dominiktornow.bsky.social · 24/10/2025
Uncertainty, formalized: Possible Worlds The fewer worlds an agent considers possible, the less his uncertainty, and the more he knows In Reasoning about Knowledge
000
Dominik Tornow @dominiktornow.bsky.social · 23/10/2025
Trampolined Style If you want to understand Event Loops, you need to read this paper from 1999: A trampolined program is organized as a single loop in which computations are scheduled and allowed to proceed in discrete steps. Grokking Event Loops = Grokking Continuations
020
Dominik Tornow @dominiktornow.bsky.social · 22/10/2025
Join me in 30 min. I'll be in the live chat
041
Dominik Tornow @dominiktornow.bsky.social · 22/10/2025
Building a recursive, distributed Deep Research Agent, scaling to hundreds of agents across dozens of nodes Chapter 3 covers: ➡️ Agent Identity ➡️ Coordination ➡️ Recovery When agents leave the terminal, you need to become a distributed systems engineer
000
Dominik Tornow @dominiktornow.bsky.social · 21/10/2025
Roll up your newspapers, we’re squashing Heisenbugs with Deterministic Simulation Testing 🗞️ Join my talk tomorrow 11/22, 11:20 AM PDT I'll be in the live chat for Q&A Sign up below ⬇️
030
Dominik Tornow @dominiktornow.bsky.social · 20/10/2025
T-2d
030
Dominik Tornow @dominiktornow.bsky.social · 20/10/2025
Run your app for minutes, hours, days, weeks, or month On FaaS like AWS Lambda or GCP Functions Serverless @resonatehqio.bsky.social
000
Dominik Tornow @dominiktornow.bsky.social · 20/10/2025
Introducing Serverless @resonatehqio.bsky.social Build distributed, durable applications with Resonate's dead simple programming model, Distributed Asynchronous Await Now on serverless
121
Dominik Tornow @dominiktornow.bsky.social · 14/10/2025
Did the dreaded Heisenbug infect your system?! Then don't miss my talk on Deterministic Simulation Testing See you next week
040