Where this came from: a prospective customer gave us one subsystem of a production application so they could see what Sippar would do with it. Real production code, not a demonstration built for the purpose. The customer and the product are not named.
What it was: a monolithic client/server module — a stateful Windows desktop client with business rules embedded in screen event handlers and SQL bound directly to the data-aware widgets, talking straight to the database. One deployment unit, installed per workstation.
What it is now: the same module as a reactive browser application over six independently deployable domain services — patient, instruction, insurance, authorization, search and reference — with the database reached through an API boundary instead of sitting under the UI.
A conversion would have carried the old shape into a new language — same monolith, same coupling, business rules still living in the screens. None of that is here. The service boundaries were derived from what the system does, not from the incidental arrangement of its files.
22 h
reconstruction, plan to merged
66 / 66
tasks completed and merged
29 / 29
end-to-end tests green
6
independently deployable services
13,593
lines of new code, from 29,879 legacy
The clock covers reconstruction — from the plan to the last merged task. Preparing the Sippar Model runs before it: configuring the source repository, building the model, and loading the graph and vector stores that agents query. For this module that took hours, not days.
The list screen
These two screens are from an earlier run against the same module.
Filters, a real data table, per-row detail. Plan-level configuration only — no patient identity here.
The edit screen
The notes grid still answers F11 to add a row and F12 to delete one. A browser application does not require those keys: the screen already provides an Add Row button and a per-row delete control, and a rewrite would discard the binding as legacy habit. The binding was present in the source, so Sippar recovered it and cited its origin. Retaining it is therefore an explicit decision rather than a silent omission.