Skip to content

Monitoring Service — Scorecard Kajian

DB-06 · SV-06 — 1 tabel (tblT_CrDrMonitoring) + 4 folder proxy read-only. Diagram: Helicopter View · Detail SV-06/DB-06.

Fitur: SO/DO Monitoring, Bupot PPh22 (Income Tax), Invoice Monitoring, EFaktur (VAT), Contract & Guarantee Monitoring (Dr/Cr Note, proxy OTC) — semua proxy SAP/OTC WSDL live, plus Dr/Cr Monitoring lokal (write sink)


Kode Kriteria Skor Bukti / Alasan
J1 Independent Deployability 2 Logika bisnis inti 4 folder tidak menyentuh kode/SP domain lain, langsung WSDL SAP/OTC. Tapi masih berbagi 3 SP utilitas generik (stp_cus_Customer_GetData/GetSoldTo/Get_SalesOrg_SapClient) dengan SV-11 (duplikasi F11/V10). Skor 2 diberikan atas keputusan user: caller kirim payload context sendiri, SV-06 berhenti query — syarat eksekusi implementasikan pola ini.
J2 Independent Scalability 2 Tidak ada data APM riil. Tapi begitu dependensi SP utilitas dilepas, SV-06 jadi murni stateless proxy — terima payload, panggil WSDL, horizontal-scale murni tanpa concern koneksi DB. Profil ini jelas beda dari service CRUD biasa, skor 2 diberikan atas keputusan user.
J3 Fault Isolation (blast radius) 2 4 folder fitur semua proxy read-only ke SAP/OTC, tidak ada dependensi tulis keluar. Kegagalan integrasi eksternal tidak merembet ke service lain.
J4 Team Ownership (Conway) 1 Ditanya langsung ke user — tidak ada testimoni tim terpisah untuk domain Monitoring vs Payment/Booking, default skor lemah, sama pola service lain.
J5 Technology Divergence 0 Tidak ada kebutuhan stack berbeda.
J6 Bounded Context (DDD) 2 Domain “Document SAP & Tax” (BC-6) kohesif — Dr/Cr, SO/DO, Invoice, EFaktur (VAT), Bupot (Income Tax), Contract & Guarantee semua satu tema monitoring transaksi/dokumen finansial. DDD memetakan domain ini sama persis.
J7 Compliance / Security Isolation 0 Tidak ditemukan sinyal enkripsi/tokenisasi/audit di 4 folder (Transaction/Invoices/EFaktur/ContractGuarantee), meski domainnya menyentuh dokumen pajak (Bupot, EFaktur).
J8 Independent Lifecycle Data 2 4 folder fitur murni read-only proxy — siklus hidup datanya sepenuhnya di SAP/OTC, bukan dikelola service ini. Masalah lifecycle tabel tblT_CrDrMonitoring (V3) sudah tercermin di DB4, tidak dihitung dobel di sini.
TOTAL 11 / 16 Tetap ✅ SPLIT (≥10) setelah J1/J2 dinaikkan.

Hard Blocker: HB1 = Tidak · HB2 = Tidak · HB3 = Tidak Keputusan:SPLIT — syarat eksekusi: implementasikan pola payload-passing (J1/J2) sebelum J1/J2 benar-benar solid, tutup V3 (DB4) & V10.


Kode Kriteria Skor Bukti / Alasan
DB1 Independensi Transaksi 2 Tidak ada kebutuhan ACID lintas batas — proxy read-only SAP/OTC bersifat stateless, 1 tabel lokal (tblT_CrDrMonitoring) cuma flag status.
DB2 Independensi Foreign Key 2 Minimal FK — 1 tabel lokal tanpa relasi kompleks.
DB3 Kohesi Aggregate 2 1 tabel, self-contained — tidak ada tensi kohesi seperti SV-05.
DB4 Single Writer 1 ⚠️ tblT_CrDrMonitoring.Flag ditulis dari 4 titik: stp_cus_Booking_Order_Save & stp_cus_cash_cancel_transaction (SV-02), CustomerPortalScheduler.stp_BookingOrderCancelation (SV-03), stp_cus_Credit_Debit_Note_CreateUpdate (SV-02). Semua menuju 1 semantik yang sama — “Dr/Cr Note tidak berlaku” — bukan kompetisi tulis disengaja, jadi skor 1 bukan 0. Arah fix event-driven sudah disepakati, belum dieksekusi.
DB5 Master Data / Sync 2 Tidak ada bukti data SV-06 dikonsumsi domain lain sebagai referensi tanpa strategi.
DB6 Independensi Reporting 2 Tidak ada JOIN olap/reporting Admin Dashboard yang menyentuh tblT_CrDrMonitoring — domain ini juga terbukti punya kemampuan baca nyata sendiri lewat 4 folder proxy.
DB7 Stabilitas Skema (co-change) 2 Tidak ada migrasi EF individual yang menyentuh tblT_CrDrMonitoring.
TOTAL 13 / 14 Turun dari klaim awal 14/14 (DB4), tetap jauh di atas ambang ≥9.

Hard Blocker: DHB1 = Tidak · DHB2 = Tidak (V3 dianggap backlog implementasi, bukan hard blocker baru — keputusan user) Keputusan:PISAH DATA — margin nyaman.


FULL MICROSERVICE (DB sendiri)Service: ✅ SPLIT (11/16) · Database: ✅ PISAH DATA (13/14, margin nyaman).

Syarat sebelum eksekusi:

  1. Implementasikan pola payload-passing — caller (SV-11 dkk.) kirim CustomerNumber/SoldTo/SalesOrgSapClient sebagai bagian request, SV-06 berhenti query stp_cus_Customer_GetData/GetSoldTo/Get_SalesOrg_SapClient sendiri. Ini syarat supaya J1/J2 (yang sudah dinaikkan duluan atas keputusan desain) benar-benar solid di kode, sekaligus menutup V10.
  2. Tutup V3 (4 titik tulis) — implementasikan event-driven, SV-02/SV-03 publish event dan SV-06 update flag sendiri, sekarang mencakup 4 titik bukan 2.
  3. Tambah bukti J4 (peta tim nyata kalau ada rencana ke depan) dan J7 (kalau ada kebutuhan compliance dokumen pajak yang belum ketemu).