System map
This page shows how the wiki domains connect. For the page/domain matrix and intentional exceptions, see the Wiki structure map.
| Connection | Meaning |
|---|---|
| Master Data -> all domains | Enterprise/BU/Site/Account/Attendee/Program provide source data, scope, settings, and sessions. |
| Booking/Subscription -> Finance | Submit/confirm or billing schedules produce billing, invoices, credit notes, and projections. |
| Finance -> Payment | Finance owns documents/payment options; Payment collects through PayLater/PayNow/DD/Deposit/providers. |
| Payment -> Finance | Provider results and payment batch state feed reconciliation and invoice/projection status. |
| Business domains -> Platform | Domain state changes can publish events, write history, or create notification jobs. |
| Platform -> Communication | Notification jobs are rendered and delivered through the messaging pipeline. |
| Communication -> Users | Email, push, SMS, and in-app messages reach recipients. |
| Shared foundation -> all | Topi/Tuke/Tux, storage, timezone, and conventions support every domain. |
One event across the system (example)
“An admin approves an invoice in Subscription” → what happens?
Current flows to locate quickly
| Flow | Main path |
|---|---|
| Subscription Extend/Rollover | Customer/Admin → Subscription service → period/enrollment runtime → Finance reads the new schedule. |
| Closure Day reconciliation | Finance → issued-minus-active-credit → adjustment/projection → Xero event after commit. |
| Settings context change | Topi/Tuke → unified settings snapshot → hierarchy cache invalidation → client selectors. |
| Statistics | Dashboard/Booking Manager → IStatisticsService → shared provider/cache. |
| Notification trace | EntityEvent/action → NotificationJob → OutgoingMessage with SourceKey → delivery status. |
Real-world example: If Dashboard and Booking Manager differ for the same period, check that both use
IStatisticsServicewith the same context and that the cache was refreshed/invalidated.
Where should I start?
| Interest | Read |
|---|---|
| Recurring enrollment, billing, invoices | Subscription |
| Booking individual sessions, discount rules, combined bookings | Booking |
| Billing, invoices, credit notes, finance transactions, Xero | Finance |
| PayLater, PayNow, Direct Debit, Deposit, checkout providers | Payment |
| Enterprise/BU/Site, Account, Attendee, Program/Term/TPS/Product | Master Data |
| Staff schedules, leave, timetable | Staff |
| Customer Portal, My Home, app-mode timezone behavior | Customer Portal |
| Attendance/booking/revenue metrics, formulas, cache/TTL | Dashboard |
| Payroll settings, timesheets, leave-only approval, CSV export | Payroll / Timesheet |
| Incident reports, acknowledgement, signatures | Incident Management |
| When and why messages are created | Platform |
| How messages are rendered and delivered | Communication |
| Apps, storage, conventions | Shared foundation |