Accounts, authentication, tokens, merchant approval
- Language
TypeScript5.5.4
- Runtime
Bun1
- Framework
NestJS11.2.1Fastify5.12.1
- gRPC
- @grpc/grpc-js1.14.4
- Data
PostgreSQL16TypeORM1.1.0
- Tests
- Jest30.4.2
Kinetix gives every service its own language on purpose: one domain, eleven idioms, and contracts that have to hold between all of them. The versions below are the ones pinned in each repository’s manifest or lockfile, not the ones its README mentions; a version with no evidence in the repository is left out rather than guessed.
Each service owns its database and is reached only through gRPC from other services, or through the gateway from outside.
Accounts, authentication, tokens, merchant approval
Products and categories
Prices, discounts, vouchers, flash sales, shipping rates
Cart, checkout, orders, returns
Payments, escrow, wallet
Bin inventory, stock reservation, fulfilment tasks
Courier allocation and dispatch
Product reviews
Customer notifications
Real-time chat
Product search
The gateway is the only door from the internet. The contracts are the only definition of a message on the wire. The courier app is the first client.
The only entry point from the internet: routing, CORS and rate limits, declared in Pkl and run without a database.
The single definition of every message on the wire, published as a package for each language that consumes it.
The courier app: assigned deliveries, proof of delivery and live location, through the gateway.
Shared middleware every service may use, and the machinery that lets services trust each other.
PostgreSQL for each service's own database, Redis for the order service's carts, Typesense for the search index.
Services prove who they are to each other with certificates carrying SPIFFE IDs, issued by step-ca. Secrets are encrypted at rest with SOPS and age.
Metrics in Prometheus, logs shipped by Promtail into Loki, dashboards and alerting in Grafana.
How code becomes a running system.
Every service ships as a container image, and environments are described with Docker Compose.
Repositories build, test and scan themselves on GitHub Actions, with GitLab CI on the mirror.
Servers are declared with OpenTofu, and part of the operational tooling is written in D.
Not built yet. Recorded here so the direction is visible: native customer apps on both mobile platforms, one backoffice for every service, and a recommendation service.
Customer app for Android, written natively.
Customer app for iOS, written natively.
One operator console for every service, built on the APIs each service owns.
Product recommendations, as its own service with its own data.
This documentation: static pages, interactive diagrams as islands, two languages.