<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Use Cases on Inorderly.com</title>
    <link>https://inorderly.com/tags/use-cases/</link>
    <description>Recent content in Use Cases on Inorderly.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 18 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://inorderly.com/tags/use-cases/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Making a Ledger, a Billing System and an Audit Agree on Every Balance</title>
      <link>https://inorderly.com/making-a-ledger-a-billing-system-and-an-audit-agree-on-every-balance/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://inorderly.com/making-a-ledger-a-billing-system-and-an-audit-agree-on-every-balance/</guid>
      <description>&lt;p&gt;Two systems that read the same events should end up in the same state. They often don&amp;rsquo;t, and the reason is rarely the code. It&amp;rsquo;s the order. A withdrawal that comes before a deposit gets declined; the same withdrawal after it goes through. If the ledger and billing see those two in a different order, they disagree on the balance, and both are right about what they saw.&lt;/p&gt;&#xA;&lt;p&gt;This worked example has four branches and 300 accounts. Over four hours they produce 100,929 transactions: deposits, withdrawals that are declined when the balance is short, and 929 reversals that undo an earlier transaction and name it as their parent. The branches&amp;rsquo; clocks are up to 0.8 seconds apart, so 77 reversals are stamped before the transaction they undo. The ledger and billing each get the transactions through their own queue, with their own delays. Later an auditor replays the four branch logs. Those were exported at least once, so 2,510 of their lines are there twice.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Merging Two Lossy Market Data Feeds Into One Tick Stream With Exact Gaps</title>
      <link>https://inorderly.com/merging-two-lossy-market-data-feeds-into-one-tick-stream-with-exact-gaps/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://inorderly.com/merging-two-lossy-market-data-feeds-into-one-tick-stream-with-exact-gaps/</guid>
      <description>&lt;p&gt;Exchanges send market data twice, over two lines usually called A and B. Each line drops a packet now and then, and rarely the same one. Take both, keep the first copy of each tick, and you get a fuller feed than either line alone. That&amp;rsquo;s the theory. The merge code is where it gets awkward.&lt;/p&gt;&#xA;&lt;p&gt;This worked example sends 150,000 ticks for three symbols over two lines. Each line loses about 2% of its ticks at random. Line A also goes quiet for four seconds and line B for three, at different times. Line B runs a few milliseconds behind A. In the end 143,458 ticks came on both lines, and 84 came on neither.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ordering Retried Webhooks So Payments Never Come Before Their Orders</title>
      <link>https://inorderly.com/ordering-retried-webhooks-so-payments-never-come-before-their-orders/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://inorderly.com/ordering-retried-webhooks-so-payments-never-come-before-their-orders/</guid>
      <description>&lt;p&gt;A shop takes its events as webhooks. Checkout sends the order. Payments sends the payment, and later a refund if there is one. The warehouse sends the shipment. Three services, three clocks, one provider in the middle that retries any delivery it isn&amp;rsquo;t sure about.&lt;/p&gt;&#xA;&lt;p&gt;This worked example runs 20,000 orders through that setup. Every order gets a payment that names the order as its parent, and then either a shipment or, for about one order in twelve, a refund. The payments service&amp;rsquo;s clock runs up to a second and a half behind checkout&amp;rsquo;s, which is plenty: 3,487 payments are stamped before the order they pay for. The provider retries about 15% of deliveries, some of them twice, up to a minute and a half later. The same 60,000 events are then delivered three times, each time with different network delays and different retries.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ordering Sensor Telemetry From Devices With Bad Clocks and Late Uploads</title>
      <link>https://inorderly.com/ordering-sensor-telemetry-from-devices-with-bad-clocks-and-late-uploads/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://inorderly.com/ordering-sensor-telemetry-from-devices-with-bad-clocks-and-late-uploads/</guid>
      <description>&lt;p&gt;Sensors are the worst-behaved producers there are. Their clocks drift. Some sit behind a gateway that forwards readings in batches. Some lose their connection for a while, keep what they measured, and send it all at once when they&amp;rsquo;re back. A few readings just never arrive.&lt;/p&gt;&#xA;&lt;p&gt;This worked example has 200 devices sending a temperature reading every 10 seconds for three hours, 216,000 readings in all. Their clocks are up to 3 seconds out. Fifty of them sit behind five gateways that forward every 45 to 90 seconds. Twenty go offline for 2 to 12 minutes and ten for 25 to 40 minutes. 634 readings are lost on the way. Each reading carries its device&amp;rsquo;s sequence number. The readings are uploaded three times, with different network delays and gateway timing each time.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
