Skip to content

Architecture ​

text
  [data / triggers]
         |
         v
   OxyKit.Flow  ----render---->  OxyKit.Render
         |
         +----file----> disk
         |
         +----mail---->  OxyKit.Mail  ----SMTP----> inbox

Boundaries ​

CoreOwnsDoes not own
RenderDocument transforms (HTTP sidecar)Tenancy, billing, SMTP
MailQueue, retries, DKIM, SMTP, send acceptanceDocument generation
FlowPersisted jobs, calling Render, delivering via file / mailIn-process rendering or SMTP

Render stays process-isolated so exotic engines (for example a legacy Crystal sidecar) can sit beside it. Flow talks to Render only through OxyKit.Render.Client (never Core).

Mail owns delivery. POST /api/v1/email/send returns sent (200) or accepted / scheduled (202). Orchestrators must not re-send on accepted.

Companion UI ​

oxykit-mail-web is the Vue SPA for Mail’s dashboard. It is not a fourth suite core and is not a substitute for this docs site.

Host patterns ​

ProductHTTP stylePriority
Mail, FlowFastEndpoints + ErrorOrDX — shared endpoint shape, Scalar
RenderMinimal APIsResources / AOT path — thin sidecar

Authoritative HTTP shapes: each API’s /openapi/v1.json and Scalar /scalar in Development.

Render · Mail · Flow