Lewati ke isi

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