Bugfixes should stay fixed

Detect data anomalies in your production database before they become customer-facing problems.

The Problem with Production Data

Have you seen this nonsense?

  • ⚠️ Records that are individually valid but imply something impossible when you put them together. For example: An ecommerce Order in pending status with an associated Shipment marked as delivered.
  • ⚠️ You insert a record with null in a column and enqueue a background job to fill it. But then one time in a million if the third-party API is down while the job system is getting deployed, you find you've still got a null hanging around. Every SQL database lets you say the column is NOT NULL but you can't really say NOT NULL AFTER 5 SECONDS, and what process would be around to that exception anyways?
  • ⚠️ If a state machine measures its transitions in days, all your records that have an extra transition as code is deployed.

No Silver Bullets

I'd like to tell you that all your problems can be solved by SQL check constraints, functional programming, event sourcing, or my favorite programming language, but no. It's not just that all tools are imperfect, it's that they can't solve these problems. Either they can't operate at every level of abstraction, you don't have the budget to spend months bulletproofing everything, and nothing can prevent a developer or customer support agent from making a typo while fixing a different issue.

As long as your database is used by humans,
it will have invalid data in it.

You can find and fix your bad data

When you find invalid data, you query to find the scope of the problem. You may fix the bug or accept that "weird stuff happens at scale."

How Recheck Works:

  1. 1
    Paste your query into a "check"
  2. 2
    Manually run your checks, or run Recheck as a background on-prem service to reruns your query regularly
  3. 3
    Get notified immediately if more data goes wrong

It's like a unit test for your production database.

Recheck is a high-ROI tool for addressing bad data that slips through the engineering tradeoffs of other tools. Rather than spend six months trying to gold plate all your background jobs and SQL constraints, find and deal with the handful of odd records as they appear.

Stay Updated

Want to hear when Recheck is available? Join the announcement list. I'll email as new versions are released and you can one-click unsubscribe at any time.

Powered by Buttondown