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 | 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 |