Skip to content

Tech stack

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.

identityGitHub ↗

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
catalogGitHub ↗

Products and categories

Language
Python3.14
Framework
Django6.1Django REST framework3.18.0
Runtime
Gunicorn23.0.0
gRPC
grpcio1.83.0
Data
PostgreSQL16psycopg3.3.4
Tests
pytest8.4.2
Quality
mypy1.18.2
pricingGitHub ↗

Prices, discounts, vouchers, flash sales, shipping rates

Language
Rust1.88
Framework
Rocket0.5.1
Runtime
Tokio1.53.1
gRPC
Tonic0.11.0prost0.12.6
Data
PostgreSQL16Diesel2.2.12diesel-async0.5.2
Tests
cargo test
orderGitHub ↗

Cart, checkout, orders, returns

Language
C#
Runtime
.NET10
Framework
ASP.NET CoreKestrel
gRPC
Grpc.AspNetCore2.67.0
Data
PostgreSQL16EF Core10.0.12Npgsql10.0.3Redis7.2StackExchange.Redis2.8.24
Tests
xUnit2.9.3Moq4.20.72
paymentGitHub ↗

Payments, escrow, wallet

Language
Java21
Framework
Spring Boot3.5.16Tomcat10.1.59
gRPC
grpc-java1.68.2
Data
PostgreSQL16Spring Data JPALiquibase
Tests
JUnit Jupiter6.1.3Mockito5.14.2
Tooling
Gradle8.12
warehouseGitHub ↗

Bin inventory, stock reservation, fulfilment tasks

Language
Ruby4.0.6
Framework
Rails8.1.3.1
Runtime
Puma8.0.2Thruster0.1.23
gRPC
grpc1.84.0
Data
PostgreSQL16pg1.6.3Solid Queue1.6.0
Quality
Sorbet0.6.13421
Tests
RSpec Rails7.1.1
matchingGitHub ↗

Courier allocation and dispatch

Language
Elixir1.20.2Erlang/OTP29.0.3
Framework
Phoenix1.8.12Bandit1.12.5
gRPC
grpc1.0.5
Data
PostgreSQL16Ecto SQL3.14.0Postgrex0.22.4
Tests
ExUnit
reviewGitHub ↗

Product reviews

Language
PHP8.5
Framework
Laravel13.29.0Octane2.19.1
Runtime
FrankenPHP
gRPC
grpc/grpc1.82.0
Data
PostgreSQL16Eloquent
Tests
Pest4.7.8
notificationGitHub ↗

Customer notifications

Language
Scala3.3.4
Runtime
JDK21
Framework
http4s Ember0.23.30Cats Effect3.5.7fs23.11.0
gRPC
grpc-java1.69.0fs2-grpc2.7.21
Data
PostgreSQL16Doobie1.0.0-RC6Flyway11.8.2
Tests
munit-cats-effect2.0.0
Tooling
sbt1.10.7
communicationGitHub ↗

Real-time chat

Language
C++23
Framework
Drogon
Messaging
mqtt_cpp13.2.3
gRPC
gRPC C++
Data
TinyORM0.38.1
Tests
GoogleTest1.15.2
Tooling
CMake3.25+vcpkg
searchGitHub ↗

Product search

Language
Go1.26.4
Framework
chi5.3.2
gRPC
grpc-go1.84.0
Data
Typesense30.2typesense-go3.2.0PostgreSQL16pgx5.11.0sqlc
Tests
testify1.12.1

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.

api-gatewayGitHub ↗

The only entry point from the internet: routing, CORS and rate limits, declared in Pkl and run without a database.

Engine
Kong Gateway3.9
Tooling
Apple Pkl0.32.1
contractsGitHub ↗

The single definition of every message on the wire, published as a package for each language that consumes it.

Language
Protocol Buffersproto3
Tooling
Bufv2 configprotoc plugins29.3
Generated for
TypeScriptPythonC#JavaRubyPHPGo
courier-mobileGitHub ↗

The courier app: assigned deliveries, proof of delivery and live location, through the gateway.

Language
Dart3.10+
UI
Flutterstable
Framework
provider6.1.5get_it9.2.1dio5.11.0Hive2.2.3
Tests
flutter_testmocktail1.0.5

Shared middleware every service may use, and the machinery that lets services trust each other.

data

PostgreSQL for each service's own database, Redis for the order service's carts, Typesense for the search index.

Data
PostgreSQL16Redis7.2Typesense30.2
trust

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.

Engine
step-caSPIFFEmTLS
Tooling
SOPS3.13.3age1.3.2
observability

Metrics in Prometheus, logs shipped by Promtail into Loki, dashboards and alerting in Grafana.

Engine
Prometheus2.54.1Loki3.1.1Promtail3.1.1Grafana11.2.0

How code becomes a running system.

containers

Every service ships as a container image, and environments are described with Docker Compose.

Engine
DockerDocker Compose5.5.1Buildx0.37.1
pipelines

Repositories build, test and scan themselves on GitHub Actions, with GitLab CI on the mirror.

Engine
GitHub ActionsGitLab CI
Quality
gitleaks8.30.1Trivy
infrastructure

Servers are declared with OpenTofu, and part of the operational tooling is written in D.

Engine
OpenTofu1.12.6
Language
DLDC 1.43.0

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-android

Customer app for Android, written natively.

Language
Kotlin
UI
Jetpack Compose
customer-ios

Customer app for iOS, written natively.

Language
Swift
UI
SwiftUI
backoffice

One operator console for every service, built on the APIs each service owns.

Language
TypeScript
Framework
TanStack StartReact
recommendation

Product recommendations, as its own service with its own data.

Language
R
kinetix-docsGitHub ↗

This documentation: static pages, interactive diagrams as islands, two languages.

Framework
Astro7.3.4Starlight0.42.3
UI
Svelte5.57.1
Runtime
Bun1.3.14TypeScript6.0.3
Hosting
Vercel