Read the story

Architecture

45 services run three dental offices.On 14 Google Cloud projects.

Patients reach the practice through lead forms and surveys, and their reports, chart links and appointments move through three shared services: the PDF renderer, the CDF registry and the Denticon sync. Around them sit the estimator and planner, the marketing data jobs, the coaching, lab and ops apps, and one request relay that six apps file into.

1 min

the tightest loops: the planner reads the book and the forms worker sweeps deliveries every minute

1 key holder

for Denticon. Every other app reads the mirror through the CDF registry

19 minutes

from a request filed in the Cowork Dashboard to the live fix on Oct 28

$132

Google Cloud in October for the six projects the billing export measured

New York --:-- simulated

A new patient
Hybridge Platform Patients reach the practice through lead forms and surveys, and their reports, chart links and appointments move through three shared services: the PDF renderer, the CDF registry and the Denticon sync. Around them sit the estimator and planner, the marketing data jobs, the coaching, lab and ops apps, and one request relay that six apps file into. Marketing data 17 services, 6 AM pulls Monday leads, patient boards Google and vendors Gemini, Gmail, Zoom Ops and lab apps 16 services, 2 sites Launchpad request relay, 6 callers Patients web, tablet, email Patient forms forms 4, surveys 1 PDF renderer shared, 3 ways in CDF dashboard registry, 3 callers Estimator, planner read the day's book Denticon practice system Denticon sync the only key holder lead, survey task intake done the book new lead 6 AM read Gemini, Gmail Zoom, lab consult lookup requests requests API, webhooks mirror

Hover a part to trace what it touches. Click it for its notes.

  • Built by me
  • Managed by Google
  • Outside system
  • Main data path
  • On demand
  • Credentials cross

When it breaks

What each failure does, and what it does not do.

  1. Denticon misses a webhook

    A sweep at twenty past each hour lists every slice Denticon holds, and the 4 AM poll reads everything changed since each cursor.

    hybridge-cdf/lib/denticon/slice-worker.ts:13

  2. Gemini is busy or retired

    Three tries per model with a growing wait, then the next model in the chain. A retired model is skipped for six hours.

    packages/lib/src/gemini-models.ts:47

  3. Monday is down

    A lead waits in Firestore and the worker retries at one minute, ten minutes and an hour. The Cowork Dashboard keeps its last good read.

    packages/core/src/delivery/jobs.ts:16

What I tuned

Small choices that keep it fast and cheap.

  1. Zero instances by default

    The estimator, planner, Launchpad, the relay and the forms worker scale to zero. The webhook receiver and the public forms keep one warm, because each must answer fast.

    hybridge-cdf/infra/cloudbuild-sync.yaml:168

  2. One image, two services

    The CDF dashboard and the Denticon sync share an image, and so do Launchpad and its relay. Configuration decides what each one can do.

    hybridge-launchpad/scripts/deploy.ps1:296

  3. Ship from a tag

    The estimator, the planner, the CDF and the surveys deploy only from a version tag, and a bad release moves traffic back to the last revision.

    .github/workflows/deploy-prod.yaml:13

Guards

Rules the code enforces, not rules people remember.

  1. One holder of the keys

    Only the sync service holds Denticon credentials. Every other repo calls the CDF, and none gets its own credentials, not even as a fallback.

    hybridge-cdf/docs/HANDOFF.md:225

  2. Every machine call signed

    The registry takes one bearer per caller, compared in constant time. The relay and the renderer take Google identity tokens from named service accounts.

    hybridge-cdf/lib/registry/auth.ts:26

  3. Logs carry counts

    The forms logger drops answers, names, emails and phones. The sync and the renderer log counts and ids.

    hybridge-forms/packages/core/src/log.ts:24

What it costs

Measured from the Google Cloud billing export, October 1 to 28, net of credits, for the six projects it covers. The other eight projects hold the CDF, marketing data, Cowork, the Daily Sales Report, Doc Coach, NPC Coach, Reconciliation and the websites; their billing export switched on Oct 28, 2026, so there is no measured month yet.

$132in October

  • $61.76 CBCT scan validation
  • $33.88 Treatment estimator
  • $27.07 Capacity planner
  • $9.00 Forms, Launchpad, Doctor Portal