The composed modules and who depends on whom

The composed modules and who depends on whom An architecture diagram generated by Archify. admin · shell · generated screens · composed last · platformkit/modules (public) admin shell · generated screens · composed last billing · plans · PaymentProvider · Renew · platformkit/modules (public) billing plans · PaymentProvider · Renew file · uploads · RemoveBlob · sweep · platformkit/modules (public) file uploads · RemoveBlob · sweep task · the exemplar Spec · platformkit/modules (public) task the exemplar Spec notification · Mailer · SendMail subscription · platformkit/modules (public) notification Mailer · SendMail subscription auth · sessions · OIDC · operator permissions · Sweep · platformkit/modules (public) auth sessions · OIDC · operator permissions · Sweep tenant · registry · hosts · OnCreate hooks · platformkit/modules (public) tenant registry · hosts · OnCreate hooks audit · Record: subscribes to every event · Retention · platformkit/modules (public) audit Record: subscribes to every event · Retention user · accounts · Service · platformkit/modules (public) user accounts · Service content · platformkit/modules (public) content site · platformkit/modules (public) site catalog modules · commerce · a billing.PaymentProvider · the private catalog · private catalog modules commerce · a billing.PaymentProvider private a client module · its own Specs · a storefront · a private application · private a client module its own Specs · a storefront private Deps Deps Deps seedRoles hook Active lister Deps Deps billing.PaymentProvider extension interfaces Deps Deps Active lister Deps Deps platformkit/modules (public) the private catalog a private application Legend Backend

Order is asserted

  • • apps/flagship/registry.go owns construction order; an unknown name is a boot failure
  • • modules.include in a client overlay chooses; the registry orders

Contracts, not internals

  • • A consumer takes an interface from the provider's contracts/ as a Deps field
  • • scripts/check_imports.sh fails an import of another module's internal/

Events tie the rest

  • • audit subscribes to every event; notification, file and auth to their own
  • • An unpromised event, or a subscription nobody emits, refuses to boot