Lewati ke konten

Tech stack

Kinetix sengaja memberi setiap service bahasanya sendiri: satu domain, sebelas idiom, dan kontrak yang harus tetap berlaku di antara semuanya. Versi di bawah adalah yang dipin di manifest atau lockfile tiap repositori, bukan yang disebut README-nya; versi yang tidak punya bukti di repositori dibiarkan kosong, bukan ditebak.

Setiap service memiliki database-nya sendiri dan hanya bisa dijangkau lewat gRPC dari service lain, atau lewat gateway dari luar.

identityGitHub ↗

Akun, autentikasi, token, persetujuan merchant

Bahasa
TypeScript5.5.4
Runtime
Bun1
Framework
NestJS11.2.1Fastify5.12.1
gRPC
@grpc/grpc-js1.14.4
Data
PostgreSQL16TypeORM1.1.0
Test
Jest30.4.2
catalogGitHub ↗

Produk dan kategori

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

Harga, diskon, voucher, flash sale, tarif ongkir

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

Keranjang, checkout, pesanan, retur

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

Pembayaran, escrow, wallet

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

Inventori bin, reservasi stok, fulfilment task

Bahasa
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
Kualitas
Sorbet0.6.13421
Test
RSpec Rails7.1.1
matchingGitHub ↗

Alokasi dan dispatch kurir

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

Ulasan produk

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

Notifikasi pelanggan

Bahasa
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
Test
munit-cats-effect2.0.0
Tooling
sbt1.10.7
communicationGitHub ↗

Chat real-time

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

Pencarian produk

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

Gateway adalah satu-satunya pintu dari internet. Kontrak adalah satu-satunya definisi sebuah pesan di jaringan. Aplikasi kurir adalah client pertama.

api-gatewayGitHub ↗

Satu-satunya pintu masuk dari internet: routing, CORS, dan rate limit, dideklarasikan dengan Pkl dan berjalan tanpa database.

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

Satu-satunya definisi setiap pesan di jaringan, dipublikasikan sebagai paket untuk tiap bahasa yang memakainya.

Bahasa
Protocol Buffersproto3
Tooling
Bufv2 configprotoc plugins29.3
Dibuat untuk
TypeScriptPythonC#JavaRubyPHPGo
courier-mobileGitHub ↗

Aplikasi kurir: pengiriman yang ditugaskan, bukti pengiriman, dan lokasi live, lewat gateway.

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

Middleware bersama yang boleh dipakai setiap service, dan mekanisme yang membuat service bisa saling percaya.

data

PostgreSQL untuk database milik tiap service, Redis untuk keranjang di order service, Typesense untuk indeks pencarian.

Data
PostgreSQL16Redis7.2Typesense30.2
trust

Service saling membuktikan identitasnya dengan sertifikat ber-SPIFFE ID yang diterbitkan step-ca. Secret dienkripsi saat disimpan dengan SOPS dan age.

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

Metrik di Prometheus, log dikirim Promtail ke Loki, dashboard dan alerting di Grafana.

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

Bagaimana kode menjadi sistem yang berjalan.

containers

Setiap service dikirim sebagai container image, dan environment-nya dideskripsikan dengan Docker Compose.

Engine
DockerDocker Compose5.5.1Buildx0.37.1
pipelines

Repositori mem-build, menguji, dan memindai dirinya sendiri di GitHub Actions, dengan GitLab CI di mirror.

Engine
GitHub ActionsGitLab CI
Kualitas
gitleaks8.30.1Trivy
infrastructure

Server dideklarasikan dengan OpenTofu, dan sebagian tooling operasional ditulis dalam D.

Engine
OpenTofu1.12.6
Bahasa
DLDC 1.43.0

Belum dibangun. Dicatat di sini supaya arahnya terlihat: aplikasi customer native di kedua platform mobile, satu backoffice untuk semua service, dan sebuah recommendation service.

customer-android

Aplikasi customer untuk Android, ditulis secara native.

Bahasa
Kotlin
UI
Jetpack Compose
customer-ios

Aplikasi customer untuk iOS, ditulis secara native.

Bahasa
Swift
UI
SwiftUI
backoffice

Satu konsol operator untuk semua service, dibangun di atas API milik tiap service.

Bahasa
TypeScript
Framework
TanStack StartReact
recommendation

Rekomendasi produk, sebagai service sendiri dengan datanya sendiri.

Bahasa
R
kinetix-docsGitHub ↗

Dokumentasi ini: halaman statis, diagram interaktif sebagai island, dua bahasa.

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