Skip to content

Fulcrum Platform Matrix

Canonical view of services, hosting targets, and repository layout

Deployment Targets

Component Source Runtime Hosting Status
fulcrum-server cmd/fulcrum-server Go (gRPC + HTTP) Railway service fulcrum-server ✅ Primary
event-processor cmd/eventprocessor Go worker Railway service event-processor ✅ Primary
dashboard (app + marketing) dashboard/ Next.js 16 (App Router) Vercel project fulcrum-dashboard (primary), Railway dashboard (fallback SSR) ✅ Primary / ♻️ Fallback
PostgreSQL + TimescaleDB infra/migrations Managed DB Railway TimescaleDB add-on ✅ Primary
Redis Shared cache Managed cache Railway Redis add-on ✅ Primary
NATS JetStream infra/docker/Dockerfile.nats Docker Railway external service or self-hosted ✅ Required

Hosting Responsibilities

  • Railway is the authoritative compute platform for backend services and managed data stores. Configuration lives in railway.toml, and scripts/validate-railway-env.sh must pass before each deploy.
  • Vercel serves the public marketing routes (/, /(marketing)) and authenticated dashboard routes (/(app)) from the same Next.js project. dashboard/vercel.json configures rewrites to the Railway API gateway.
  • Disaster recovery relies on Railway-managed backups; there is no secondary provider blueprint.
  • Doppler manages secrets and shared environment values. doppler.yaml pins the default project/config.

Web Surfaces

The dashboard repository intentionally unifies marketing and product surfaces:

dashboard/src/app/
├── (marketing)/   # Landing pages served at fulcrumlayer.io
└── (app)/app/     # Authenticated dashboard under /app
  • Production traffic terminates at Vercel. /app/** routes require Clerk auth while / and other marketing routes stay public.
  • Railway runs the same Next.js build as a fallback SSR target and for preview environments that need proximity to backend services.
  • Rewrites in vercel.json forward /api/grpc/* to the Railway fulcrum-server so both hosting stacks stay aligned.

Repository Topology

Path Purpose
cmd/ Go entrypoints (server, MCP, event processor, retention job, CLI)
internal/ Core platform services (policy engine, brain, envelope, billing, etc.)
pkg/ Reusable Go libraries shared across binaries
proto/ Protocol buffer definitions (source of generated code under fulcrum/)
dashboard/ Next.js dashboard + marketing app
docs/ MkDocs documentation (source of truth referenced by mkdocs.yml)
infra/ Dockerfiles, Helm charts, migrations, and IaC assets
scripts/ Operational scripts (validation, deployments, migrations)

Configuration Checklist

  1. Update railway.toml when adding services or environment variables and re-run ./scripts/validate-railway-env.sh.
  2. Update dashboard/vercel.json for any new rewrites, headers, or domains touching the marketing site.
  3. Keep disaster-recovery procedures aligned with Railway backup capabilities and document deviations in docs/runbooks/disaster-recovery.md.
  4. Document every platform change in docs/runbooks/DEPLOYMENT_GUIDE.md so operations, marketing, and engineering share a single deployment story.