Backend Service Integration
The GGNomad backend is implemented as wspace-ggnomad-svc — a workspace
microservice in the Burdenoff platform. It exposes a GraphQL API on the
workspaces public gateway, publishes domain events, and stores data in
Postgres (with Prisma + AGE).
Service architecture
- Service:
wspace-ggnomad-svc - Gateway: Workspaces public gateway (
/workspaces/graphql) - Schema:
.hive-schema.graphql(published to GraphQL Hive Cloud) - Database: Postgres 18 + AGE (via Prisma)
- Events: Redis Streams via
@burdenoff/be-sdk
Environment selection
All GGNomad services default to production infrastructure. To target a
different environment, set BURDENOFF_ENV:
BURDENOFF_ENV | Workspace gateway | Global gateway |
|---|---|---|
prod (default) | https://graphqlworkspaces.burdenoff.com/workspaces/graphql | https://graphql.burdenoff.com/global/graphql |
alpha | https://alphagraphqlworkspaces.burdenoff.com/workspaces/graphql | https://alphagraphql.burdenoff.com/global/graphql |
local | http://localhost:4003/workspaces/graphql | http://localhost:4000/global/graphql |
Local development
Start the workspace state (Postgres + Redis) via docker compose, then run the service:
cd ~/products/wspace/ggnomad/wspace-ggnomad-svc
# Start backing services
docker compose up -d
# Install, generate Prisma client, and run
bun install
bun run gendb
bun run codegen
bun run dev
The service runs on port 8080 by default and registers itself with the
workspaces public gateway at http://localhost:4003.
GraphQL schema
The service schema is published to GraphQL Hive Cloud and consumed by the gateways for federation. Key entity types:
GgnomadProvider— hosts, tour operators, venuesGgnomadProperty— stays and accommodationGgnomadActivity— experiences and activitiesGgnomadEvent— dated entertainment eventsGgnomadTour— guided toursGgnomadTrip— transport legsGgnomadBooking— confirmed reservationsGgnomadFavorite— wishlist itemsGgnomadAnalytics— marketplace and host analytics
Domain events
The service publishes events via Redis Streams for downstream consumers:
ggnomad.booking.createdggnomad.booking.cancelledggnomad.provider.createdggnomad.property.createdggnomad.favorite.toggled
Subscribe to these events to drive notifications, sync external systems, and trigger downstream automation without polling.
Build and deploy
bun run build # TypeScript compilation → dist/
bun run sanity # lint + format + type-check + test + build
CI/CD:
- Push to main / PRs: Lint → Type check → Build → Unit tests → Hive publish (development)
- Alpha deploy: Auto after CI passes
- Prod deploy: Manual approval gated by the
prodGitHub Environment
Links
- Source: github.com/algoshred/wspace-ggnomad-svc
- Platform docs: docs.burdenoff.com
- Hive Cloud: app.graphql-hive.com