Skip to content

ADR-001: Multi-Vertical SaaS Platform Engine & Domain Purification

ACCEPTED (2026-08-30)

GERCIA was originally organized as a standalone health application with healthcare concepts (prescriptions, health councils, clinical enums) embedded inside the foundational BuildingBlocks and Core libraries. As the business expands to host multiple verticals (Healthcare, Operations, and future enterprise verticals), coupling the foundation to healthcare created architectural leaks and prevented multi-vertical scaling.

  1. Reposition GERCIA as a software engineering enterprise operating a multi-vertical SaaS engine (Foundation/).
  2. Move all healthcare-specific entities (HealthcareProfessional, CouncilType, Specialty, InsuranceProvider, Occupation) and enums (BloodType, DisabilityType, EmergencyContact) from Foundation to the Gercia.Health.Clinical domain module.
  3. Purify ITenantProvider, TenantType, and GerciaDbContext to generic, universal multi-tenancy.
  • Positive: Foundation/ is 100% reusable across any business vertical; zero healthcare leaks in universal SaaS services.
  • Positive: Independent DDD bounded contexts for Health.Clinical, Health.Pharmacy, and Operations.