Chapters

Walk through the visual explanation →

Separate provider responsibilities

Cloudflare owns edge and control-plane responsibilities: ingress, static delivery, request protection, coordination and selected public caching and collaboration services. These are different from canonical identity and domain records.

The application’s Next.js Node runtime runs on Google Cloud Run behind the edge. Domain services execute commands and queries. Firebase and Google Cloud provide Firebase Auth, Firestore, Storage, App Check, Functions and selected workloads. External providers remain adapter boundaries.

A conceptual request

A client uses an explicit transport. The request boundary admits and routes the request. Authentication establishes identity. Authorization evaluates current scoped authority. A domain command or query performs the relevant work through storage or provider adapters. The response exposes an authorized projection.

This path is conceptual rather than a literal published inventory of routes, headers and deployment configuration. Actual handlers and adapters retain their distinct implementation concerns.

Background execution

Some effects belong outside the interactive request. Durable admission connects a committed domain change to later processing. Jobs may retry, and providers may fail independently. Admission is evidence that processing was accepted, not proof of successful delivery.

This separation makes failure interpretation more useful. A successful application command, a pending effect and a delivered provider message are different outcomes. The user-facing interface should describe the one actually established.

Operational tradeoffs

The edge/origin boundary introduces coordination across provider roles and releases. The Node-capable origin supports application and provider work that is not reduced to static edge behavior. The chosen split should be evaluated against its responsibilities, rather than treating one provider as a synonym for the whole platform.

The provider map is source-backed documentation. This public case study does not independently verify live settings, every release path or all tenant-domain transitions. It describes architecture and its evidence limits, not private operations.

System architectureCloudflare owns edge/control-plane responsibilities. The Next.js Node runtime runs on Google Cloud Run. Firebase/Google Cloud owns application identity and data.ClientsEdgeApplication runtimeData planeProvidersFunctions / Jobs attempts effects through External ProviderWeb Client requests application access through Cloudflare EdgeiOS Client requests application access through Cloudflare EdgeDesktop Client hosts the experience of Web ClientMCP Client accesses public APIs through Cloudflare EdgeCloudflare Edge forwards admitted requests to Next.js OriginNext.js Origin runs Domain ServiceDomain Service persists canonical records in FirestoreDomain Service accesses admitted files in StorageDomain Service checks identity using Firebase AuthDomain Service admits background work to Functions / JobsDomain Service uses scoped adapters for External ProviderWeb ClientUse Filmclusive in a browseriOS ClientUse Filmclusive on an iPhoneMCP ClientScoped access for connected toolsDesktop ClientOpen the web app on a MacCloudflare EdgeReceives and routes incoming requestsNext.js OriginRuns the server applicationFirebase AuthChecks who is signing inDomain ServiceChecks and carries out a requestFunctions / JobsProcesses work in the backgroundStorageStores documents, images and videoFirestoreStores the application recordsExternal ProviderA connected third-party serviceApp CheckChecks the app making a request
Connections in words
  • Functions / Jobs attempts effects through External Provider
  • Web Client requests application access through Cloudflare Edge
  • iOS Client requests application access through Cloudflare Edge
  • Desktop Client hosts the experience of Web Client
  • MCP Client accesses public APIs through Cloudflare Edge
  • Cloudflare Edge forwards admitted requests to Next.js Origin
  • Next.js Origin runs Domain Service
  • Domain Service persists canonical records in Firestore
  • Domain Service accesses admitted files in Storage
  • Domain Service checks identity using Firebase Auth
  • Domain Service admits background work to Functions / Jobs
  • Domain Service uses scoped adapters for External Provider
  1. 1Web Client
  2. 2API Transport
  3. 3Cloudflare Edge
  4. 4Request Boundary
  5. 5Firebase Auth
  6. 6Permission / Capability
  7. 7Domain Service
  8. 8Firestore
  9. 9Response projection
  10. 10Web Client
Open a step to inspect its responsibility. Provider effects branch from domain services.