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
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.
Akun, autentikasi, token, persetujuan merchant
Produk dan kategori
Harga, diskon, voucher, flash sale, tarif ongkir
Keranjang, checkout, pesanan, retur
Pembayaran, escrow, wallet
Inventori bin, reservasi stok, fulfilment task
Alokasi dan dispatch kurir
Ulasan produk
Notifikasi pelanggan
Chat real-time
Pencarian produk
Gateway adalah satu-satunya pintu dari internet. Kontrak adalah satu-satunya definisi sebuah pesan di jaringan. Aplikasi kurir adalah client pertama.
Satu-satunya pintu masuk dari internet: routing, CORS, dan rate limit, dideklarasikan dengan Pkl dan berjalan tanpa database.
Satu-satunya definisi setiap pesan di jaringan, dipublikasikan sebagai paket untuk tiap bahasa yang memakainya.
Aplikasi kurir: pengiriman yang ditugaskan, bukti pengiriman, dan lokasi live, lewat gateway.
Middleware bersama yang boleh dipakai setiap service, dan mekanisme yang membuat service bisa saling percaya.
PostgreSQL untuk database milik tiap service, Redis untuk keranjang di order service, Typesense untuk indeks pencarian.
Service saling membuktikan identitasnya dengan sertifikat ber-SPIFFE ID yang diterbitkan step-ca. Secret dienkripsi saat disimpan dengan SOPS dan age.
Metrik di Prometheus, log dikirim Promtail ke Loki, dashboard dan alerting di Grafana.
Bagaimana kode menjadi sistem yang berjalan.
Setiap service dikirim sebagai container image, dan environment-nya dideskripsikan dengan Docker Compose.
Repositori mem-build, menguji, dan memindai dirinya sendiri di GitHub Actions, dengan GitLab CI di mirror.
Server dideklarasikan dengan OpenTofu, dan sebagian tooling operasional ditulis dalam D.
Belum dibangun. Dicatat di sini supaya arahnya terlihat: aplikasi customer native di kedua platform mobile, satu backoffice untuk semua service, dan sebuah recommendation service.
Aplikasi customer untuk Android, ditulis secara native.
Aplikasi customer untuk iOS, ditulis secara native.
Satu konsol operator untuk semua service, dibangun di atas API milik tiap service.
Rekomendasi produk, sebagai service sendiri dengan datanya sendiri.
Dokumentasi ini: halaman statis, diagram interaktif sebagai island, dua bahasa.