Infrastructure · Cloudflare-native

MultiGroup Infrastructure

The edge-native platform behind a ~15k-member developer community. About a dozen Cloudflare Workers apps share one self-hosted identity provider, per-app D1 databases, and a common set of KV, R2, Queues, Workers AI, Vectorize, and Durable Objects. One Cloudflare account, no origin servers.

11 Workers · 8 D1 · edge-nativedevmultigroup.comgithub.com/multigroupco
11
Workers deployed
8
D1 databases
10
R2 buckets
5
KV namespaces
5
Queues
2
Vectorize + Workers AI
4
zones · 5 custom domains
0
origin servers

System map

One Cloudflare account, one identity spine, a fleet of edge-rendered apps sitting on a shared platform fabric.

Edge → apps → shared fabric

Every request is SSR'd on a Worker; all apps authenticate through Warden and read/write per-app data stores on the same fabric.

Cloudflare DNS · Edge · WAF — devmultigroup.comOIDC · single sign-onWardenidentitydevmultigroupcommunityTalariaemailInstituteLMS · liveStridermapsSHARED PLATFORM FABRICD1 · ×8per-app SQLiteKV · ×5version-stamped cacheR2 · ×10media + assetsWorkers AI + Vectorizebge-m3 · ×2 indexesQueues · ×5mail-sends · embeds (+DLQ)Crontalaria-cron · every minEmail SendingSPF · DKIM · DMARCDurable Objects + SFUlive classrooms

The apps

Warden

identity

Self-hosted OAuth 2.1 / OIDC provider — one MultiGroup login.

Astro · Better Auth · EdDSA JWKS · D1

devmultigroup.com

community

Public community site: D1-backed CMS, newsletter, store, edge search.

Astro SSR · D1 · Workers AI · Vectorize

Talaria

email

Visual email-template builder + bulk campaign sender on Queues.

Next.js 16 · OpenNext · Queues · Email Sending

Practical Learning Institute

LMS

Premium LMS with live interactive classes recorded to VOD.

Astro · Durable Objects · Realtime SFU

Strider

maps

Map-first, gamified social index of events, cafés & places.

Astro · MapLibre · Protomaps PMTiles · D1 geo

How the pieces move

Warden — single sign-on

Every app is an OIDC relying party; Warden federates login, apps gate authorization locally.

UserApp (RP)PKCE + stateWarden IdP/authorizeD1 kunye-dbverify user + rolegated route302 redirectlookupID token (EdDSA) + role claim · verified via /jwks

Talaria — email campaign pipeline

Fire-and-forget sends: the API enqueues in ~50ms; a cron + queue-consumer meter delivery against the daily cap and auto-suppress bounces.

Campaign UIAPI /sendQueue mail-sendsqueue-consumerEmail SendingunsubscribesD1 suppress-listtalaria-cronevery minuteenqueuebatch·retry×3sendbounce → suppressdue scheduled

Institute — live classroom

A LiveRoom Durable Object handles presence & chat over hibernating WebSockets; media flows peer-to-SFU over WebRTC.

BrowserReact islandInstitute Workerauth · 60s HMACRealtime SFUmedia relayLiveRoom DOWS hibernationD1 institute-dbattendancetokenWS /roomsattendanceWebRTC

Engineering highlights

A self-hosted identity provider at the edge

Warden runs OAuth 2.1 / OIDC on Workers + D1 with asymmetric (EdDSA) ID tokens and a JWKS endpoint — dropping Auth0. Four apps federate to it, yet each keeps its own sessions and local roles: login is federated, authorization stays local.

Real Durable Objects + WebRTC, not a toy

The Institute runs live classrooms on an app-authored LiveRoom Durable Object (WebSocket Hibernation, presence, chat, hand-raise, attendance → D1) fronted by Cloudflare's Realtime SFU, gated by a 60-second HMAC handshake.

A three-Worker email platform

app + cron + queue-consumer turn Cloudflare Email Sending's ~200/day soft cap into a feature: per-batch quota reservation in D1, park-and-resume across days, send-time bounce auto-suppression, click tracking with no open pixels — all KVKK-compliant.

One cache idiom, reused fleet-wide

Every SSR app uses a version-stamped KV read-through cache (c:ns:version:key + a cv:ns counter), so an admin write bumps a version and invalidates a whole namespace in O(1) — no purge API, guaranteed-fresh first read.

Edge semantic search, done honestly

Workers AI (bge-m3, 1024-dim) → Vectorize, routed through an AI Gateway for cost logging, embeddings de-duplicated by content hash in KV — with a graceful D1 LIKE fallback when the binding is absent.