Peta sistem
Peta ini digambar dari kode, bukan dari rencana. Setiap panah adalah panggilan yang benar-benar ada dan tersambung di sisi pemanggil, dan setiap panggilan menautkan baris yang melakukannya, pada commit tempat peta ini digambar. Pilih sebuah kotak untuk menelusurinya.
Pilih sebuah kotak untuk menelusuri koneksinya. Panah menunjuk dari pemanggil ke service yang dipanggilnya.
- Panggilan gRPC
- HTTP lewat gateway
- Panggilan ke API eksternal
Versi teks diagram ini
Client — Memanggil
- api-gateway
aplikasi kurir — Memanggil
warehouse — Memanggil
catalog — Memanggil
matching — Memanggil
review — Memanggil
payment — Memanggil
- Midtrans:
POST /v2/charge,GET /v2/{reference}/status
order — Memanggil
- pricing:
pricing.v1.PricingService/CalculatePrice,pricing.v1.PricingService/QuoteShipping,pricing.v1.PricingService/RedeemVoucher,pricing.v1.PricingService/ReleaseVoucherRedemption,pricing.v1.PricingService/AllocateFlashSaleStock,pricing.v1.PricingService/ReleaseFlashSaleAllocation - matching:
shipping.v1.ShippingService/EstimateShippingOptions,fleet.v1.CourierTelemetryService/DispatchCourier - catalog:
catalog.v1.CatalogService/GetProduct - warehouse:
fulfillment.v1.BinStockService/ReserveStock,fulfillment.v1.BinStockService/ReleaseStock,fulfillment.v1.FulfillmentTaskService/CreateFulfillmentTask,fulfillment.v1.FulfillmentTaskService/CancelFulfillmentTask,fulfillment.v1.FulfillmentTaskService/RecordCourierAwb - payment:
payment.v1.PaymentService/CreateEscrowHold,payment.v1.PaymentService/RefundEscrow,payment.v1.PaymentService/SettleShippingFee,payment.v1.PaymentService/GetEscrowStatus - identity:
identity.v1.IdentityService/GetMerchantInfo,identity.v1.IdentityService/GetUserProfile
identity — Memanggil
notification — Memanggil
communication — Memanggil
search — Memanggil
- catalog:
catalog.v1.CatalogService/ChangedSince,catalog.v1.CatalogService/CountProducts(hanya saat reindex penuh) - identity:
identity.v1.IdentityService/MerchantsChangedSince - order:
order.v1.OrderService/OrdersChangedSince
Cara membaca peta
Section titled “Cara membaca peta”Semua yang datang dari luar masuk lewat gateway. Browser, integrasi, dan aplikasi kurir hanya berbicara dengan Kong. Pilih gateway untuk melihat service mana yang dibukanya dan di path apa; notification dan communication sama sekali tidak punya rute publik.
order adalah pemanggil tersibuk. Checkout adalah saga yang dikoordinasikan order: harga dan voucher
dari pricing, stok dari warehouse, escrow hold dari payment, opsi pengiriman dan kurir dari matching.
Dua dari percakapan itu berjalan dua arah — warehouse melaporkan paket yang sudah dikemas lewat
FulfillmentPacked, dan matching melaporkan paket yang sudah terkirim lewat OrderDelivered.
identity adalah yang paling sering dipanggil. Service menanyakan siapa sebuah principal, merchant mana seorang seller, dan apakah sebuah merchant boleh berdagang. Access token tidak diperiksa dengan memanggil identity: setiap service memverifikasinya sendiri terhadap signing key yang dipublikasikan identity, diambil lewat HTTP, sehingga pengambilan itu tidak muncul sebagai panah.
search memelihara indeksnya sendiri. Ia menanyakan catalog, identity, dan order tentang semua yang
berubah sejak checkpoint terakhirnya, lalu menulis hasilnya ke Typesense. Panggilan ChangedSince
itulah feed-nya.
Yang tidak digambar
Section titled “Yang tidak digambar”- Panggilan yang hanya dilakukan oleh migrasi data sekali jalan.
- Lalu lintas di dalam satu service, seperti event in-process milik matching.
- notification melayani API-nya, tapi belum ada service yang memanggilnya. communication sudah dibangun tapi belum di-deploy.