Architectural Principles¶
Status: FROZEN — Foundation v1.0
- Tenant isolation before convenience. Tenant context is resolved and authorized server-side; client-provided tenant IDs are never sufficient authorization.
- Tenant ≠ vertical. Organizations compose business capability through Business Units.
- One primary vertical per Business Unit. Each Business Unit has exactly one platform-governed Primary Vertical Preset; compatible additional capabilities are entitlement- and billing-aware.
- Configuration before forks. New verticals should prefer schemas, capability packs and workflow presets over tenant-specific code.
- Strong transaction core, flexible edges. Orders, payments, bookings, availability and identity are strongly modeled; vertical attributes are schema-driven.
- One backend platform. Managed and Custom sites use the same authoritative business platform; Custom does not imply a backend fork.
- Managed vs Custom is contractual. Headless/hybrid access exists only for the Custom plan.
- API-first boundaries. Public/admin/headless consumers use versioned contracts.
- Events for propagation, not hidden coupling. Cross-engine side effects use explicit events where asynchronous behavior is appropriate; concrete event infrastructure is a technology decision.
- Idempotency for money/reservations. Mutating booking/payment/integration operations must define replay behavior.
- Audit meaningful mutation. Plan, entitlement, access, price, availability, booking, payment, publication and integration changes are attributable.
- Avoid premature distribution. Service extraction must be justified by scale, ownership, reliability or deployment requirements; Foundation v1.0 does not select the implementation topology.
- Legacy parity is explicit. Migration cannot drop behavior by omission.
- Locale-aware from the start. Internationalization is not a Site-only feature; every engine/API is locale-aware, while locale, currency, timezone and market remain independent.
- Customer identity is tenant-wide. Business Units share a tenant customer identity model; staff visibility can remain Business-Unit scoped.
- Commercial aggregates may span Business Units, never Tenants. Orders may contain lines from multiple Business Units of one Tenant.
- External money/accounts remain tenant-owned by default. Tenant customer payments and advertising spend use tenant-connected provider accounts; Touriffique does not assume custody or merchant-of-record status.
- Capability expansion is commercially explicit. Enabling additional compatible capabilities may change subscription billing and must pass entitlement/commercial validation.