Skip to content

Tech Stack

Both DPGs are TypeScript-first pnpm + Turborepo monorepos that share a common technology base.

ConcernSignals DPGAggregator DPG
API frameworkFastify + Zod (fastify-type-provider-zod)Fastify (BFF)
Web UIReact 19 + Vite (schema-driven)Next.js 15 (App Router) + BFF
Background jobsBullMQ worker
ORM / DBDrizzle + PostgreSQL (partitioned items)Drizzle + PostgreSQL
Cache / sessions / queueRedisRedis
Object storageS3S3
AuthBetter-Auth + API keysKeycloak (OIDC)
NotificationsSMTP, SMSSMTP (Mailpit local), SMS
  • Node ≥ 24 (CI pins Node 24; Node 22 works locally for the Aggregator).
  • pnpm is required (Signals pins pnpm@11.x; Aggregator requires pnpm ≥ 10). Other package managers are not supported.
  • Turbo orchestrates build, test, lint, typecheck, dev topologically.
  • Docker + Compose brings up Postgres, Redis, and (Aggregator) Keycloak + Mailpit. S3 is a real cloud dependency, not containerised.
  • Vitest for all tests. Integration tests are named *.integration.test.ts and excluded from the default unit run.
  • Cross-package tests import the in-memory fake from a package’s ./testing export — never mock the interface directly.
  • Target ≥ 70% line coverage.
  • ESLint + Prettier via husky/lint-staged on staged files. Conventional Commits are required; do not bypass hooks with --no-verify.
  • dependency-cruiser enforces interface-boundary rules in the Aggregator at CI time.

A shared logger (pino-backed) is used everywhere. Every log entry carries operation, a status of success/failure/skipped, latency_ms for external calls, and error/error_type on failure. Log level comes from LOG_LEVEL.

The cloud deployment is its own codebase (bluedots-automation) with a distinct toolchain:

ConcernTooling
Cloud provisioningOpenTofu + Terragrunt (AWS EKS, VPC, IAM/IRSA, S3, storage)
Application deployHelm umbrella charts, driven by install.sh (no Makefile)
IngressKong ingress controller (DB-less), KongClusterPlugin rate-limit tiers
TLScert-manager + Let’s Encrypt (letsencrypt-prod ClusterIssuer)
Image registryGHCR (ghcr.io/blue-dots-economy/…), sha-<short> tags
Shared datastoresPostgreSQL + Redis (deployed by common-services)
ObservabilityPrometheus, Alertmanager, Loki, Alloy, Grafana (monitoring chart)

See Infrastructure & Deployment Architecture and the CI/CD & Build Pipeline guide.

This documentation site itself is built with Astro + Starlight and deployed to GitHub Pages — see the Guides and the repository README for how to run and deploy it.