Lewati ke isi

Service Dependencies

Matriks dependensi runtime dan ownership. Diagram alur data: event-flow.md.


Diagram dependensi

```mermaid flowchart LR subgraph external [Eksternal] FB[Firebase] LEG[(MariaDB legacy)] end

subgraph app [Aplikasi] FL[Flutter] BE[NestJS] UI[migrasi-ui] end

subgraph data [Data Platform] PG[(PostgreSQL)] KF[Kafka] CH[(ClickHouse)] end

subgraph cdc_stack [CDC Stack] ZK[Zookeeper] DEB[Debezium] CON[clickhouse-etl] end

FL --> FB FL --> BE BE --> PG BE --> CH UI --> PG UI --> KF UI --> CH UI --> DEB LEG -.->|ETL one-shot| PG PG --> DEB DEB --> KF DEB --> ZK KF --> CON CON --> CH DEB --> ZK ```


Tabel ownership & dependensi

Service / Komponen Repo path Depends on Depended by Owner
PostgreSQL erp database/ โ€” NestJS, Debezium, ETL, migrasi-ui DBA / Database
Schema migrasi database/migrations/tenant/, pusat/, clickhouse/ Git review Semua runtime Database
NestJS API backend/ PostgreSQL, ClickHouse, Firebase Admin Flutter, Web Backend
Debezium database/cdc/, database/connectors/ PostgreSQL replication slot, Kafka, Zookeeper Consumer Platform
Kafka database/cdc/docker-compose.yml Zookeeper Debezium, consumer Platform
clickhouse-etl database/etl/clickhouse/consumer_clickhouse.py Kafka, ClickHouse โ€” Platform
ClickHouse database/migrations/clickhouse/ โ€” Consumer, NestJS dashboard Platform / Backend
migrasi-ui frontend/web/migrasi-ui/ PG, Kafka, CH, Docker Operator internal Platform
cdc-monitor frontend/web/cdc-monitor/ Kafka lag (read-only) Operator Platform
Flutter ERP frontend/flutter/erp/ Firebase, NestJS API Pengguna Mobile
ETL legacy database/etl/ MariaDB PostgreSQL (bootstrap) Database
Firebase konfigurasi secret Google Flutter, Backend auth Infra
Dashboard progress scripts/parse-todos.js TODO*.md Tim & calon tim Platform

Dependensi kritis (jalur kritis)

Kontrak API (OpenAPI) โ”€โ”€โ–บ Flutter screen operasional โ”€โ”€โ–บ Cutover big-bang
         โ–ฒ
         โ””โ”€โ”€ Backend domain API (transaksi, laporan keuangan penuh)
DDL ClickHouse โ”€โ”€โ–บ DDL PostgreSQL   (tambah kolom โ€” urutan wajib)
Publication PG + Debezium include-list โ”€โ”€โ–บ Topik Kafka โ”€โ”€โ–บ Consumer TENANT_SCHEMAS

Rujuk ../AGENTS.md ยง Pipeline CDC.


Port & endpoint (dev referensi)

Komponen Port Env tipikal
NestJS 3001 PORT
PostgreSQL 5432 ERP_MIGRASI_URL, pool tenant
Kafka 9092 KAFKA_BROKER
Debezium REST 8083 connector config
ClickHouse HTTP 8123 / 19000 dev CLICKHOUSE_*
migrasi-ui 5000 (var) PM2
Flutter API prod https://api-erp.luckyjayagroup.com hardcoded di AUTH.md

Coupling & risiko

Coupling Risiko Mitigasi terdokumentasi
Dynamic INSERT consumer โ†” skema CH Consumer crash jika kolom PG baru CH dulu, lalu PG
search_path pool tenant Data tenant salah Pool per tenant / DISCARD PLANS
ReplacingMergeTree Duplikat baris tanpa FINAL Pola query di clickhouse-patterns
OpenAPI belum final Drift kontrak Flutter TODO lintas workstream
Global Kafka reset (DEV) Bocor ke prod jika salah mode OPERATING_MODEL DEV vs PROD

Dokumen terkait