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)
Scorecard Service (maks 16)
Section titled “Scorecard Service (maks 16)”| 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.
Scorecard Database (maks 14)
Section titled “Scorecard Database (maks 14)”| 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.
Rekomendasi Akhir
Section titled “Rekomendasi Akhir”FULL MICROSERVICE (DB sendiri) — Service: ✅ SPLIT (11/16) · Database: ✅ PISAH DATA (13/14, margin nyaman).
Syarat sebelum eksekusi:
- Implementasikan pola payload-passing — caller (
SV-11dkk.) kirimCustomerNumber/SoldTo/SalesOrgSapClientsebagai bagian request,SV-06berhenti querystp_cus_Customer_GetData/GetSoldTo/Get_SalesOrg_SapClientsendiri. Ini syarat supaya J1/J2 (yang sudah dinaikkan duluan atas keputusan desain) benar-benar solid di kode, sekaligus menutup V10. - Tutup V3 (4 titik tulis) — implementasikan event-driven,
SV-02/SV-03publish event danSV-06update flag sendiri, sekarang mencakup 4 titik bukan 2. - Tambah bukti J4 (peta tim nyata kalau ada rencana ke depan) dan J7 (kalau ada kebutuhan compliance dokumen pajak yang belum ketemu).