Skip to content
Little Lab Rats
Case study

Rebuilding 25 years of supply chain back office

An automotive parts distributor in Sydney ran their entire operation on software written a quarter of a century ago, on a single PC in the office. We rebuilt it as a modern desktop application without asking anyone to change how they work.

Sector
Automotive parts distribution
Legacy system age
25 years
Engagement
Fixed price
Delivery
Windows desktop app
Context

A business running on borrowed time

The client manufactures and distributes oil seals, O-rings and hub seal kits to trade customers who order by phone and email on thirty, sixty and ninety day terms. Everything — quoting, ordering, picking, invoicing, purchasing, stock — ran through one in-house system built in-house and extended for twenty-five years.

It worked. That is the important part, and the reason a rip-and-replace with an off-the-shelf ERP was the wrong answer. Two decades of accumulated trade knowledge were encoded in that software, including a cross-reference capability that lets staff turn a competitor’s part number into something they stock — which is a genuine commercial advantage, not a feature to be traded away for somebody else’s workflow.

What did not work was everything underneath it. An application server released in 2009, a Java runtime from 2002, and a database version that has been out of support for longer than some of the staff have worked there, all on a single machine with a desktop shortcut to start it.

The rebuild

Same workflows. Nothing else the same.

The interface still speaks the language the staff use and still answers to the function codes they have typed for years. The engineering underneath it is entirely new.

LayerBeforeAfter
App serverTomcat 6.0.20 (2009)Node 22, Fastify
RuntimeJDK 1.4.2TypeScript 5.9
Interface1,451 JSP pagesReact 19 SPA
DatabaseMySQL 4.0SQLite, single file
Business logicSQL embedded in pagesIsolated domain layer
DeploymentOne PC, manual startOne-file installer
Migration

Proving the data survived

A rebuild is only as trustworthy as its migration. The source was a 692 megabyte database dump with a mix of character encodings accumulated over two decades, spread across 257 tables of which many were long dead.

We profiled the real data before writing any migration code, then built a repeatable extract-and-load with reconciliation counts at every step. The result was 4,644,501 rows migrated with zero reconciliation failures into a schema reduced to 93 tables, with every mapping documented column by column and every dropped table justified in writing.

Because “it looks right” is not evidence, we also stood the legacy system back up in a container and ran it beside the new one, comparing outputs directly. That harness performed 2,966 comparisons with no disagreements on verified behaviour.

4.6M

Rows migrated, zero reconciliation failures

257→93

Database tables after consolidation

209→7ms

Catalogue search, before and after

1,734

Automated tests on the new system

Deliberate differences

Where we chose not to copy the original

Faithfully reproducing a legacy system means reproducing its accidents too. Each of these was a considered decision, agreed with the client rather than assumed.

Customer details carry forward

The old system asked staff to retype the same customer details at every step from quote to delivery docket. Now the details follow the document chain.

Letterhead is part of the document

Invoices and dockets were printed onto pre-printed stationery, which meant the right paper had to be in the right tray. Documents now generate complete.

Low stock became a worklist

Reordering ran on a printed list walked between desks. It is now a live worklist grouped by supplier, so one purchase order can cover many parts.

Stock changes leave a trail

Stock levels could previously be edited freely with no record. Every movement is now an auditable entry with a reason and an author.

Outcome

What actually changed on the floor

The owner spent one to two hours every Friday retyping a low-stock list into purchase orders, supplier by supplier. That job is now a worklist that groups by supplier and produces the orders directly.

Sales staff stopped retyping customer details at each step of the quote-to-delivery chain. Catalogue search went from 209 milliseconds to 7. And the business stopped depending on a single unsupported PC to be able to invoice anyone.

The legacy system remains available read-only. Nobody has needed it.

The client is referred to generically here at our discretion. No customer data, pricing, or identifying detail from the engagement appears on this page, and the figures quoted are drawn from our own delivery records. We are happy to discuss specifics, with the client’s agreement, under NDA.

Running on something you cannot replace?

Legacy modernisation is most of what we do. If the system that runs your business is older than the people maintaining it, we should talk.

hello@littlelabrats.com