End of sprint 3: ERP Integration Connector Platform (NetSuite-first)

Sprint retrospective. One connector, many independent customer accounts. Demo and design notes.

Sprint goal

Test enhancements and multi-tenant load testing. Harden the existing connector's test suite, and prove it holds up when several tenants sync at once, rather than extending connector surface.

The connector itself was built in earlier sprints. This one was about the tests behind it, and what happens under concurrent load.

What shipped

The connector predates this sprint; listed here as the surface the new tests and load scenarios cover.

Evidence

1. The demo

Open the Stage, then press Play demo: the simulated NetSuite account, the account's own SuiteScript, and the connector picking up each change. Recorded at half speed.

2. Five-scenario walkthrough

Five scenarios, one connector. Recorded from the live console, at half speed.

1 · Provision

Fresh customer accounts are provisioned and backfilled through the real API surface: paged, truncated and exhausted.

2 · Isolation

Two tenants never share records. ERP internalIds are per-account, so ids collide across customers while the platform's links do not.

3 · Customisation

A customer whose schema is untrustworthy (custom fields, drifted types) is handled as configuration, with no code branch per customer.

4 · Conflict

Both sides changed the same record. The platform detects it at field level and resolves it, instead of a last-write-wins coin toss on ledger data.

5 · Backlog

A deep backlog is queued, a worker lease is stranded on purpose, and the drained queue is caught up by parallel workers.

Throughout

Counts are read from the platform's own metrics, never written by the demo. Nothing is asserted that the run does not print.

3. Lessons Learnt

Twelve slides, five seconds each, aimed at engineers: real do / don't code from the build.

What went well

What we learned

Twelve bugs the tests and the deployment caught, each written up as do / don't code. The full tour is on the console's Lessons Learnt tile; the short list:

Numbers

~32,400lines Python + TS/TSX
190test functions, 18 files
3ERPs behind one interface
4NetSuite API shapes
5Locust load scenarios
24Grafana dashboard panels

Next sprint

Appendix: software stack and Python libraries

Pythonasync workersPostgreSQL SuiteTalk REST / SuiteQLSuiteTalk SOAP RESTletsSuiteScriptLocustpytest Prometheus

Recorded from the live console: the simulated NetSuite account as a multi-window desktop, an Omni-style workspace of floating windows (draggable, resizable, minimize tray), with each window in its own browsing context, and the numbers read from the platform's own endpoints.