Live shadow mode for AfterDiff in 0.10.0

Fix, extend, and adapt software you don't control.

Software has an aftermarket too: patches, adapters, test harnesses and stand-in services that keep old code working. Aftermarket.dev builds them as one open-source toolkit. Nine tools are out, from a repair proxy to a read-only API over an old app's export files.

565

Tests, all passing

12 of 12

Old client checks passing through AfterAPI

12 of 12

Old shop reports reading the same through AfterSchema views

0

Third-party dependencies

From the recorded results and the examples of 0.10.1. See test/results and examples in the code repository.

Repairs for software you can’t change

Software keeps running long after the assumptions it was built on stop being true. An upstream API renames a field, a vendor retires an endpoint, a client nobody can rebuild still expects the old shape. Something has to sit in between and fix it. Aftermarket.dev is a family of developer tools for that work.

The family has ten planned tools: AfterPatch, AfterAPI, Afterlife, AfterHook, AfterSchema, AfterConfig, AfterTest, AfterBridge, AfterGuard and AfterDiff. A few more ideas, such as AfterTrace and AfterInstall, are still research. See all the concepts.

Nine tools are out. AfterPatch is a small Go proxy that repairs HTTP traffic with rules you can review. AfterAPI keeps an old client working after its whole API was replaced. AfterTest records real traffic as test fixtures with credentials removed, AfterDiff replays it against two versions of a service and lists what changed, and in its live mode compares the new version on real traffic while clients keep getting answers from the old one, AfterConfig changes a vendor’s JSON, YAML, TOML or .env config file without ever editing it, AfterHook sends a signed webhook when a file, folder, endpoint or database table changes, AfterGuard stands in front of an old app with no login and turns away what your rules don’t allow, AfterSchema keeps old reports and scripts working after a SQLite database changed shape, and AfterBridge serves an old app’s CSV exports and SQLite files as a read-only JSON API. Try them in a few minutes. The others follow one at a time, each when the one before it works. The architecture and the roadmap explain the order.

Development notes

All posts →

afterbridge

How AfterBridge Was Tested

AfterBridge makes four promises. The files it reads are never written. Nothing a request sends reaches SQL or the file system. A file that is half written is never …

Fix a broken integration in five minutes.

Download AfterPatch, write two rules, and keep the old client working.

Start here