ADR-015: Desktop App Coexistence
Status: Accepted Date: 2026-03-16
Context
The PowerSeller Desktop App has active customers and an active developer (Tom). The SaaS App will take years to reach full feature parity with the desktop app's ~30 years of accumulated functionality. The team needed to decide whether to set a migration deadline or allow indefinite coexistence.
Decision
Desktop app and SaaS app coexist indefinitely. No forced migration timeline.
Key principles:
- Tom maintains the desktop app. He is not moving to SaaS development. The desktop app continues to receive updates and support.
- No forced migration. When a customer is ready — data in SQL MI, SaaS features sufficient for their workflows — they transition at their own pace.
- Shared database during transition. Both apps can read/write the same database during a customer's migration period. This enables side-by-side validation and gradual cutover.
- Schema backward compatibility. Schema changes in the SaaS app must not break the desktop app during the coexistence period. Additive changes only (new columns, new tables). No renames or removals of columns the desktop app uses.
Consequences
Positive:
- No customer disruption: Existing customers continue using the desktop app with full support
- Side-by-side validation: Financial calculations can be compared between desktop and SaaS on the same data
- Gradual migration: Customers can transition module by module (e.g., use SaaS for pipeline, desktop for pooling)
- Risk reduction: If a SaaS module has issues, the customer falls back to the desktop version
Negative:
- Dual maintenance: Two codebases (PB and .NET) serving the same business logic
- Schema constraints: Cannot freely modernize the schema until a customer fully migrates off the desktop app
- Developer resources split: Tom on desktop, CTO on SaaS — no shared development effort
- Desktop app plugins as bridge: Could build desktop app plugins that call SaaS API instead of local logic (extending desktop app's useful life while validating SaaS services)