Keep legacy writes untouched
The existing desktop application continues its normal SQL Server writes and updates.
Case Study · System Architecture
A full-stack business platform that connects modern web workflows with a long-running legacy insurance system without replacing the existing desktop operation.
My role
Full-stack product development & system architecture
Stack
Angular 17 · NestJS · gRPC · Redis · PostgreSQL · SQL Server · LINE LIFF · Docker
The business needed a web platform for staff operations and customer self-service, but its existing desktop application and SQL Server data could not simply be removed or rewritten. The challenge was to add modern workflows while keeping the legacy system operating normally.
I built a hybrid platform with Angular Web and LINE LIFF clients, a NestJS API Gateway, JWT + Redis session handling, and dedicated backend services for customers, policy/tax, LIFF, documents, notifications, and legacy SQL Server access. New application state is persisted through the PostgreSQL service into Neon PostgreSQL, while the legacy service reads the existing SQL Server source of truth without replacing the Delphi Desktop application.
The existing desktop application continues its normal SQL Server writes and updates.
Legacy information is read through the bridge, while new web workflows use PostgreSQL.
Internal service-to-service communication stays explicit and structured as the platform grows.
The frontend and LINE LIFF clients communicate with the NestJS API Gateway, which provides the REST entry point to the backend services.
The existing desktop application and SQL Server database were still part of daily operations. I introduced a legacy bridge so the new platform could read existing data without forcing a full rewrite or migration.
Some information remained in SQL Server while new workflows used PostgreSQL. I kept the data paths explicit and separated, then composed the required data at the application layer.
Customer and vehicle searches had to work with legacy records and new data. I implemented hybrid search behavior and added regression tests around license-plate and province matching.
The platform needed more than feature development, so I added health checks, smoke tests, deployment configuration, and security controls to make the system easier to operate safely.
The platform gives staff a modern web workspace and gives customers self-service experiences through Web and LINE, while the existing desktop operation and SQL Server data remain usable. The result is a controlled path from legacy infrastructure to modern services without requiring an all-at-once migration.





