The Architecture
Most vertical-market software lives as either a desktop app or a web app. Mine had to be both at once — and agree with itself.
Why two editions
My customers were offices, pharmacies, laboratories, and insurers in environments where connectivity was a privilege, not an assumption. A pharmacy can't stop dispensing because the internet dropped. So the Windows edition (Delphi / RAD Studio on MS SQL Server) ran fully offline at the site, while the web edition (PHP/JavaScript on MySQL/MariaDB) served users who needed access from anywhere. Every record from both editions synchronized to a central cloud warehouse, where reconciliation logic resolved conflicts and journal-first lineage kept every row traceable to its source.
What building this teaches you
Offline-first synchronization is one of software's quietly hard problems: identity across systems, conflict resolution, idempotent replays, partial failures, clock drift. Getting it wrong corrupts customer data invisibly; you find out weeks later. Fourteen years of running this in production — with real businesses on it — is why I treat data integrity as a reflex rather than a requirement line.
The integration surface
Around the core: REST/JSON APIs for mobile apps and payment systems, XML/SOAP for legacy and enterprise partners (including ERP-class integrations), scheduled jobs, and reporting across both editions. One person can hold all of this only if the design stays disciplined — which is the honest argument for boring, explicit architecture over cleverness.