<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Durability on foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/today/category/durability/</link><description>Recent content in Durability on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 30 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://foojay.io/today/category/durability/index.xml" rel="self" type="application/rss+xml"/><item><title>Durable Execution Is a Property, Not a Product</title><link>https://foojay.io/today/durable-execution-is-a-property-not-a-product/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/durable-execution-is-a-property-not-a-product/</guid><description>&lt;p&gt;Three method calls. That is my entire workflow: charge a payment, reserve inventory, send a confirmation email.&lt;/p&gt;&#10;&lt;p&gt;Run those three calls on a dedicated workflow engine and here is what happens before your business logic is done: 23 history events are appended, 15 durable state transitions are committed to a database, and 15 gRPC round trips travel between your worker and the orchestration cluster.&lt;/p&gt;&#10;&lt;p&gt;That, in one paragraph, is why I want to talk about durable execution. Not because the engines are bad. They are impressive systems built by serious engineers. I want to talk about it because the Java community is being sold a property as if it were a product, and I think most of us already own the property.&lt;/p&gt;</description></item><item><title>Toward a Durable Spring PetClinic</title><link>https://foojay.io/today/toward-a-durable-spring-petclinic/</link><pubDate>Sun, 19 Jul 2026 18:06:06 +0000</pubDate><guid>https://foojay.io/today/toward-a-durable-spring-petclinic/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Durable Execution&lt;/strong&gt; is a way of running code so that its progress survives failure. A normal program keeps its state in memory: if the process crashes, the machine reboots, or a network call times out halfway through a multi-step operation, that state is gone and the work is left half-done.&lt;/p&gt;&#10;&lt;p&gt;Temporal, the Durable Execution platform, persists every step of a process to its &lt;strong&gt;Event History&lt;/strong&gt; — a durable, append-only log of Events — so that after any failure the work resumes exactly where it left off, as if the crash never happened.&lt;/p&gt;</description></item><item><title>Temporal Is to Your Code What a Database Is to Your Data</title><link>https://foojay.io/today/temporal-is-to-your-code-what-a-database-is-to-your-data/</link><pubDate>Sat, 11 Jul 2026 10:31:54 +0000</pubDate><guid>https://foojay.io/today/temporal-is-to-your-code-what-a-database-is-to-your-data/</guid><description>&lt;p&gt;&lt;strong&gt;Once upon a time, applications managed their own data files. Every program hand-rolled its own locking, its own crash recovery, its own consistency guarantees. Every program did it badly, in its own unique way.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Then the relational database arrived and made a deal with application developers: &lt;em&gt;&lt;strong&gt;you declare what you want, and I guarantee it survives&lt;/strong&gt;.&lt;/em&gt; Atomicity, durability, crash recovery: all of it moved out of application code and into a dedicated platform. Nobody writes their own file-based transaction log anymore.&lt;/p&gt;</description></item><item><title>"This Can't Possibly Work": What I Learned at a Temporal.io Workshop</title><link>https://foojay.io/today/this-cant-possibly-work-what-i-learned-at-a-temporal-io-workshop-on-durable-execution/</link><pubDate>Fri, 10 Jul 2026 08:41:22 +0000</pubDate><guid>https://foojay.io/today/this-cant-possibly-work-what-i-learned-at-a-temporal-io-workshop-on-durable-execution/</guid><description>&lt;p&gt;&lt;strong&gt;When developers first hear about &lt;a href="https://temporal.io/" target="_blank" rel="noopener noreferrer"&gt;Temporal&lt;/a&gt;, they tend to move through a predictable sequence of emotions. First comes disbelief — the claim that your application can crash mid-execution and simply pick up where it left off, variables intact, sounds like nonsense. Then comes irritation that anyone would even say such a thing is possible. Then they try it, discover it actually works, and get very excited. And finally they ask the only question that matters: &lt;em&gt;how?&lt;/em&gt;&lt;/strong&gt;&#10;&lt;img src="https://foojay.io/today/this-cant-possibly-work-what-i-learned-at-a-temporal-io-workshop-on-durable-execution/IMG_2977-1024x768.jpeg" alt="" width="1024" height="768" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item></channel></rss>