<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Distributed-Systems on Brian Faust</title><link>https://wimdy.works/tags/distributed-systems/</link><description>Recent content in Distributed-Systems on Brian Faust</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://wimdy.works/tags/distributed-systems/rss.xml" rel="self" type="application/rss+xml"/><item><title>A Transaction Defines What Must Succeed Together</title><link>https://wimdy.works/thoughts/a-transaction-defines-what-must-succeed-together/</link><pubDate>Wed, 01 Feb 2017 00:00:00 +0000</pubDate><guid>https://wimdy.works/thoughts/a-transaction-defines-what-must-succeed-together/</guid><description>&lt;p&gt;A booking flow reserved funds, completed the remote booking, and captured the
funds. Only then did synchronous response processing fail. The remote booking
existed, the funds were captured, and the caller received a failure.&lt;/p&gt;
&lt;p&gt;The capture was individually valid, and its own database transaction committed
cleanly. It was still too early. We had drawn the success boundary around
“remote booking returned” while the operation promised something larger: a
complete booking result which the caller could use.&lt;/p&gt;</description></item><item><title>A Correlation Identifier Is a Boundary Contract</title><link>https://wimdy.works/thoughts/a-correlation-identifier-is-a-boundary-contract/</link><pubDate>Thu, 01 Sep 2016 00:00:00 +0000</pubDate><guid>https://wimdy.works/thoughts/a-correlation-identifier-is-a-boundary-contract/</guid><description>&lt;p&gt;We had logs everywhere and still could not follow one shipment through the
system. It had failed somewhere after payment and before its documents were
ready, but the application, queue worker, and remote adapter did not share an
identifier.&lt;/p&gt;
&lt;p&gt;The investigation started with timestamps, account details, and values which
looked related. Payment was plausible, as were several remote calls nearby.
Some trails took hours to disprove because they belonged to different requests
which happened at roughly the same time. We did not need more log lines. We
needed a chain of custody.&lt;/p&gt;</description></item></channel></rss>