Gå til innholdet
Digilist Dokumentasjon
Book demo

ARKITEKTUR · OVERSIKT

Arkitektur-oversikt

Tre-plan-design med 27 komponenter, ~80 kjernetabeller, 50 cron-jobber, 110+ hendelse-topics. Komplett systemkart.

Digilist følger et tre-plan-design: tynne frontend-apper, en kilde-bare SDK, og en Convex-basert kontrollplan bygd av 27 isolerte komponenter.

1. Tre-plan-design

┌────────────────────────────────────────────────────────────────────┐
│ OPPLEVELSE-PLAN — 2 React-apper │
│ │
│ apps/web Offentlig markedsplass — søk, betaling, billett │
│ Helt un-scoped (ingen tenantId på lese-spørringer)│
│ │
│ apps/dashboard Forent dashboard — /admin/* (tenant) + /platform/*│
│ (plattform-drift). users.role + tenantUsers.role │
│ styrer hva hver person ser. ~126 ruter │
└────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────┐
│ SDK-PLAN — kilde-bare TypeScript-pakke (packages/sdk/) │
│ │
│ convex-provider.tsx XalaConvexProvider — klient + cache │
│ hooks/ (109 filer) ~870 navngitte eksporter │
│ transforms/ (16) Convex-form ↔ Digilist-form │
└────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────┐
│ KONTROLL-PLAN — Convex │
│ │
│ schema.ts ~80 kjernetabeller │
│ domain/ (103 filer) ~960 fasade-spørringer/mutasjoner/handlinger│
│ components/ (27) Isolerte, plug-and-play komponenter │
│ crons.ts 50 planlagte jobber │
│ http.ts Webhook-endepunkter (Stripe, Vipps, Signicat)│
└────────────────────────────────────────────────────────────────────┘

2. Delte pakker

PakkeRolleNotater
@digilist/sdkType-trygt data-lagKilde-bare, ingen byggesteg. Provider + hooks + transforms.
@digilist/app-shellProvider-komposisjon + rutevakterAuthProvider, RequireAuth, RoleProvider, FeatureGate, kapabiliteter.
@digilist/digilistDomene-UI-komponenterListings, bookings, calendar, reviews, cart.
@digilist/sharedPlattform-typer + konstanterMulti-entry: ./types, ./constants, ./navigation.
@digilist/dsDesignsystemDigdir Designsystemet base, Digilist-tema, komponent-registry.
@digilist/i18ni18next-wrapperLokaliteter: nb (default), en, ar (RTL).

Kanonisk regel. Auth, realtime, RBAC og feature-flags må komme fra @digilist/app-shell (wrapping SDK). Ingen lokal useAuth, AuthProvider eller RealtimeProvider i appene. Dette hindrer drift mellom apper.

3. Komponent-arkitektur

Hver Convex-komponent eier sine tabeller, funksjoner, schema og kontrakt. Komponenter spørrer aldri hverandres tabeller direkte — all kryss-komponent-tilgang går via fasader i convex/domain/ eller over hendelse-bussen.

3.1 Plattform-lag (10 komponenter)

Identitet, infrastruktur, observabilitet — felles fundament for alle tenants.

KomponentAnsvar
identityBrukere, sesjoner, MFA, step-up auth
rbacRoller, tillatelser, kapabiliteter
tenantsTenant-livssyklus, billing-binding, team-medlemskap
auditHendelse-loggføring, retention, DSAR-eksport
feature-flagsPlattform kill-switches, tenant overrides
notificationsE-post-pipeline, SMS, push, in-app
secretsKryptert nøkkel-lager med step-up
geoBrreg, adresse-oppslag, kart
mediaCDN-opplastinger, transformasjoner
i18nOversettelser, lokaliteter

3.2 Forretnings-lag (12 komponenter)

Booking-motor, betalinger, ressurser — kjerne-domenet.

KomponentAnsvar
resourcesLokaler, utleieobjekter, tjenester, events
bookingsSlot-allokering, godkjenningsflyt, konflikter
calendarÅpningstider, blokker, sesonger, rekurrens
paymentsCheckout, Stripe/Vipps/Nets-routing, refusjon
ledgerProvisjon-snapshot, payouts, escrow
subscriptionsBasis/Pluss/Premium-nivåer, plan-grinder
ticketsEvent-billett-typer, kjøp, innsjekk, salg igjen
membershipsMedlemskap, kontingent, fornyelse
messagingTrådet kommunikasjon innbygger ↔ saksbehandler
reviewsVurderinger, moderasjon, eksterne kilder
seasonsSesongleie, fordelings-regler for lag/foreninger
accountingEHF, Fiken/Tripletex/Visma/PowerOffice-adaptere

3.3 Tjeneste-lag (5 komponenter)

Operatør-verktøy — bygd oppå plattform + forretning.

KomponentAnsvar
intelligenceSite-audits, vekst-harness, content-pipeline
supportSak-håndtering, escalation, runbook-binding
adminPlattform-drift, tenant-tilsyn, kill-switches
migrationsConvex-skjema-migrering, datatransport
reportingAggregert tenant + plattform-rapportering

4. Operasjons-fakta

  • 27 komponenter · ~80 kjernetabeller · 103 fasade-filer · ~960 fasade-funksjoner
  • 109 hook-filer med ~870 eksporter
  • 2 apper (web + dashboard) · ~126 ruter
  • 50 cron-jobber klassifisert i W3-A
  • 110+ hendelse-topics på outbox-bussen

5. Drift- og test-tall

  • ~2 044 tester totalt: 281 SDK + 1 470 Convex unit + 71 Convex E2E + 135 Playwright + 87 A-krav
  • 99,98 % oppetid siste 90 dager (mai 2026)
  • 94s median booking-tid fra førstegangs-besøk til bekreftet betaling
  • 100 % EØS-data-lokasjon (Frankfurt / Stockholm)

Beslektet