Service Dependencies
Matriks dependensi runtime dan ownership. Diagram alur data: event-flow.md.
Diagram dependensi
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