Ringkasan eksekutif
Empat aplikasi kepatuhan dibangun di atas satu stack yang sama (Laravel + Inertia + React + MySQL) dengan Portal sebagai gerbang SSO. Dokumen ini menyiapkan tiga keputusan yang dibahas hari ini: (1) arsitektur digabung vs terpisah, (2) peta jalan 2 bulan, dan (3) anggaran AI & infrastruktur.
Empat aplikasi, satu fondasi
Keempatnya berbagi stack, pola UI (Inertia/React), audit trail, dan otentikasi via Portal — sehingga apa pun keputusan arsitekturnya, fondasinya sudah konsisten.
| Aplikasi | Fungsi inti | Modul kunci | Regulator/Acuan |
|---|---|---|---|
| AML/CFT (APU/PPT) | Anti pencucian uang & pendanaan terorisme end-to-end | CDD/EDD, rule engine, alert, kasus, LTKM/LTKT, AI Patrol | OJK · PPATK · DTTOT |
| iGRaCiaS | Governance, Risk & Compliance korporat | Risk register, RCSA, audit, temuan, insiden/loss, kebijakan | ISO 31000 · 37001/37301 |
| iDesk | Compliance desk & review SERKEP | Review (AI co-pilot), repository kebijakan, monitoring, integrasi | Internal · POJK |
| Portal | Gerbang SSO + layanan bersama | Tenant, plan, apps, OAuth/SSO, MoM, e-Sign | OAuth2 · UU PDP |
Digabung (monolit) vs Terpisah (4 aplikasi)
Inti diskusi hari ini. Kami sajikan jujur kelebihan & kekurangan keduanya, lalu rekomendasi jalan tengah yang sesuai dengan desain Portal yang sudah ada.
Opsi A — Digabung menjadi 1 aplikasi (monolit)
Kelebihan
- Satu basis kode & satu deploy — operasional & CI/CD paling sederhana.
- Data lintas-modul mulus — kasus AML bisa langsung menautkan risiko GRC / kebijakan iDesk tanpa API antar-sistem.
- Auth, pengguna, audit, e-Sign, MoM sekali bangun — tanpa duplikasi.
- UX paling konsisten — satu navigasi, satu desain, satu login.
- Biaya infra termurah — satu server/kluster, satu DB.
Kekurangan
- Blast radius besar — satu bug/deny bisa menjatuhkan semua fungsi kepatuhan.
- Sulit dijual/di-whitelabel per modul — klien yang hanya butuh AML tetap memikul seluruh aplikasi.
- Rilis terkopel — perubahan kecil di GRC menunggu rilis bersama; regresi lintas modul.
- Skalakan semua atau tidak sama sekali — modul ringan ikut diskalakan.
- Isolasi regulator lebih sulit — pemisahan data/akses per domain perlu kerja ekstra.
Opsi B — Tetap 4 aplikasi terpisah
Kelebihan
- Dijual mandiri / whitelabel — tiap aplikasi adalah produk SaaS sendiri.
- Rilis & skala independen — AML naik versi tanpa menyentuh GRC.
- Isolasi kegagalan — gangguan di satu app tidak menjatuhkan lainnya.
- Kepemilikan tim jelas — domain, data, dan akses terpisah rapi (cocok untuk audit/regulator).
- Blast radius kecil — keamanan & kepatuhan lebih mudah dibuktikan per domain.
Kekurangan
- Duplikasi fondasi — auth, pengguna, audit bisa berulang (dimitigasi oleh Portal SSO).
- Data lintas-app perlu integrasi — butuh API/kontrak antar layanan.
- Biaya infra & ops lebih tinggi — lebih banyak server, pipeline, monitoring.
- Risiko UX tidak konsisten — perlu design system bersama agar seragam.
- e-Sign & MoM lintas-app jadi soal integrasi — harus ada layanan pusat.
Opsi C — Hybrid: 4 app + Portal sebagai platform (Rekomendasi)
Desain yang sudah berjalan justru menunjuk ke sini: Portal memegang SSO, dan permintaan terbaru menempatkan e-Sign & MoM lintas-3-app juga di Portal. Artinya, pertahankan 4 aplikasi terpisah untuk penjualan/isolasi, tetapi angkat layanan lintas-cutting ke Portal sebagai shared platform services.
| Kriteria | Monolit | Terpisah | Hybrid |
|---|---|---|---|
| Kesederhanaan ops | Tinggi | Rendah | Sedang |
| Jual/whitelabel per modul | Sulit | Mudah | Mudah |
| Isolasi kegagalan/keamanan | Lemah | Kuat | Kuat |
| Data & layanan lintas-app | Mulus | Perlu API | Via Portal |
| Biaya infra | Termurah | Tertinggi | Menengah |
| Rilis independen | Tidak | Ya | Ya |
Timeline 17 Juni – 15 Agustus 2026
~8,5 minggu, dibagi 4 sprint dua-mingguan. Tiap aplikasi memiliki jalur fitur sendiri yang berjalan paralel, diikuti pengujian berlapis dan go-live bertahap. Gemini diintegrasikan sejak Sprint 2.
Milestone & deliverable
| Kode | Milestone | Target | Bukti keluaran |
|---|---|---|---|
| M0 | Kickoff & mobilisasi | Rabu 17 Jun | Hari kerja pertama setelah libur Tahun Baru Islam (Sel 16 Jun); charter, akses/env, backlog sprint 1, DoD |
| M1 | Fondasi & desain beku | 29 Jun | Auth/SSO jalan, data model, CI/CD, design system, skeleton 4 app |
| M2 | Demo modul inti (per app) | 21 Jul | Alur utama tiap app + integrasi Gemini pertama (Patrol/co-pilot) |
| M3 | Feature complete / code freeze | 4 Agu | Semua fitur in-scope + e-Sign & MoM; mulai SIT |
| M4 | UAT sign-off | 10 Agu | UAT lulus, pentest & perf clear, runbook deploy |
| M5 | Go-live & hypercare | Kamis 13 Agu | Go-live di hari kerja sebelum long weekend Kemerdekaan (Sen 17 Agu); hypercare 14 Agu + standby; serah terima 15 Agu |
Ritme sprint (4 × 2 minggu)
| Sprint | Periode | Fokus | Exit |
|---|---|---|---|
| S1 | 17–29 Jun | Fondasi: SSO, data model, CI/CD, design system, scaffolding 4 app | M1 |
| S2 | 30 Jun–13 Jul | Modul inti tiap app; mulai integrasi Gemini | — |
| S3 | 14–27 Jul | Pelaporan/AI, e-Sign & MoM, integrasi; mulai SIT | M2→M3 |
| S4 | 28 Jul–15 Agu | UAT, security/perf, perbaikan, deploy bertahap, hypercare | M4→M5 |
Libur nasional (SKB 3 Menteri 2026): Tahun Baru Islam — Selasa 16 Jun (tepat sebelum kickoff) & HUT Kemerdekaan — Senin 17 Agu (tepat setelah window). Tidak ada libur nasional di tengah rentang 17 Jun–15 Agu. Karena 15 Agu jatuh di akhir pekan (Sabtu) dan 17 Agu libur, go-live digeser ke Kamis 13 Agu (hari kerja) dengan hypercare 14 Agu + standby; serah terima formal 15 Agu. Cakupan dijaga ketat (no scope creep).
Tim, tata kelola & mutu
Tim & RACI (ringkas)
| Peran | Tanggung jawab | Charter | Sprint | UAT | Go-live |
|---|---|---|---|---|---|
| Project Manager | Jadwal, risiko, steering, komunikasi klien | A | A | C | A |
| Tech Lead / Arsitek | Arsitektur, standar kode, platform bersama | C | A | C | R |
| Dev per app (4 squad) | Bangun fitur masing-masing app | I | R | R | R |
| AI Engineer | Integrasi Gemini, prompt, guardrail, evaluasi | I | R | C | C |
| QA Lead | Strategi tes, SIT/UAT, regresi, exit criteria | C | C | A | C |
| DevOps/SRE | CI/CD, infra, observabilitas, deploy | C | C | C | A |
| Compliance SME (klien) | Validasi aturan, UAT, sign-off regulasi | C | I | A | C |
R = Responsible · A = Accountable · C = Consulted · I = Informed.
Ritual & tata kelola
Cadence
- Daily standup 15 menit
- Sprint planning & review tiap 2 minggu
- Retrospective tiap akhir sprint
- Steering committee mingguan (status, risiko, keputusan)
Definition of Done
- Kode review + lulus CI (unit/integration)
- Memenuhi acceptance criteria
- Terdokumentasi + audit trail
- Tidak ada bug severity tinggi terbuka
Change control
- Backlog ter-prioritas (MoSCoW)
- Perubahan scope via change request
- Buffer 15% di Sprint 4
- Freeze fitur di M3
Strategi pengujian (berlapis)
| Lapis | Kapan | Cakupan | Exit criteria |
|---|---|---|---|
| Unit + Integration (CI) | W3–W8, otomatis | Logika modul, kontrak API, rule engine | Coverage target tercapai, pipeline hijau |
| SIT (System Integration) | W6–W7 | Alur lintas-modul & lintas-app via Portal (SSO, e-Sign, MoM) | Skenario E2E lulus, defect kritis = 0 |
| UAT (User Acceptance) | W7–W8 | Validasi bisnis & regulasi oleh SME klien | Sign-off tertulis per app |
| Security / VAPT | W7–W8 | Pentest, OWASP, otorisasi, PDP, audit trail | Temuan High/Critical tertutup |
| Performance | W7–W8 | Beban rule engine (±300rb tx/hari), respons AI | SLA latensi & throughput terpenuhi |
| Regression | Sebelum go-live | Suite menyeluruh tiap app | Tidak ada regresi terbuka |
Risiko & mitigasi
| Risiko | Dampak | Mitigasi |
|---|---|---|
| Timeline 2 bulan agresif untuk 4 app | Tinggi | Cakupan ketat (MVP per app), platform bersama, squad paralel, buffer S4 |
| Akurasi/biaya AI (NL→SQL, review) | Sedang | Guardrail, human-in-the-loop, evaluasi, model Gemini tepat-guna, caching |
| Ketergantungan data/akses dari klien | Sedang | Dipasok di M0; mock data bila tertunda |
| Kepatuhan PDP & residensi data | Sedang | On-prem / VPS Indonesia sebagai opsi; enkripsi & audit |
| Scope creep | Sedang | Change control, freeze M3 |
MoM Management & e-Sign lintas aplikasi
Dua layanan baru dipusatkan di Portal agar dapat dipakai ketiga aplikasi lain (AML/CFT, iGRaCiaS, iDesk) — sejalan dengan rekomendasi hybrid.
MoM Management (Notulen Rapat)
- Jadwalkan rapat antar-divisi (mis. Divisi Kepatuhan × Divisi TI), agenda & peserta.
- Catat notulen, keputusan, dan action item ber-PIC & tenggat.
- Tiap peserta/divisi dapat mengunggah bukti (dokumen, foto, lampiran) ke notulen.
- Riwayat & pencarian MoM, status tindak lanjut, notifikasi.
- Audit trail penuh — siapa menulis, mengubah, menyetujui.
Sign / Approval Management (e-Signature)
- Setiap Kepala Divisi & pejabat memiliki tanda tangan tersimpan di Portal.
- Alur persetujuan dokumen yang berada di 3 aplikasi lain (AML/CFT, iGRaCiaS, iDesk) ditandatangani lewat Portal.
- Routing approval bertingkat (maker → checker → approver), 4-eyes.
- Verifikasi keaslian, stempel waktu, dan jejak audit immutable.
- Notifikasi & status real-time di aplikasi sumber.
Laravel + Inertia + React
Seluruh aplikasi memakai stack yang sama — memudahkan tim, berbagi komponen, dan mendukung baik deployment terpisah maupun tergabung.
| Lapis | Teknologi | Catatan |
|---|---|---|
| Backend | Laravel 12 (PHP 8.3) | API, domain logic, rule engine, queue (Horizon) |
| Frontend | Inertia 2 + React 18 + Vite | SPA-feel tanpa API terpisah; komponen bersama |
| Database | MySQL 8 | Per-app schema; audit trail immutable |
| Cache/Queue | Redis | Antrian, cache, rate limit, sesi |
| AI | Google Gemini API | NL→SQL Patrol, review co-pilot, ringkasan, ekstraksi |
| Web/Proxy | Nginx | TLS, reverse proxy, static |
| Auth | Portal SSO (OAuth2) | Satu identitas untuk 4 app |
Budget Google Gemini
AI wajib memakai Google Gemini selama 2 bulan pengembangan ini; di bawah juga disertakan estimasi biaya API 1 tahun untuk produksi. Kurs Rp 17.800/USD.
Tarif model (ilustratif — per 1 juta token)
| Model | Peran | Input (USD) | Output (USD) |
|---|---|---|---|
| Gemini 2.5 Flash-Lite | Tugas ringan, klasifikasi, ekstraksi massal | $0,10 | $0,40 |
| Gemini 2.5 Flash | Workhorse — NL→SQL, review, ringkasan | $0,30 | $2,50 |
| Gemini 2.5 Pro | Penalaran kompleks, analisis dokumen panjang | $1,25 | $10,00 |
| Gemini 3.x Pro (premium) | Opsi mutu tertinggi bila diperlukan | ~$2,00 | ~$12,00 |
Tarif perlu dikonfirmasi ke ai.google.dev/pricing saat eksekusi; gunakan sebagai dasar perencanaan. Estimasi memakai Gemini 2.5 Flash sebagai mesin utama + Pro untuk sebagian kecil beban berat.
Fase pengembangan (2 bulan)
| Item | Asumsi/bulan | Biaya/bulan | 2 bulan |
|---|---|---|---|
| Flash — input | 40 jt token | $12 | $24 |
| Flash — output | 12 jt token | $30 | $60 |
| Pro — beban berat | ~3/0,8 jt | ~$12 | $24 |
| Buffer eksperimen/eval (×1,5) | — | — | ~$54 |
| Total fase dev (2 bln) | ± $160 (~Rp 2,85 jt) |
Produksi — estimasi 1 tahun API (3 tier)
| Tier pemakaian | Token in/out per bln | Biaya/bln | Per tahun (USD) | Per tahun (Rp) |
|---|---|---|---|---|
| Rendah (adopsi awal) | 60 jt / 18 jt | ~$63 | ~$760 | ~Rp 13,5 jt |
| Menengah (4 app aktif) | 200 jt / 60 jt | ~$210 | ~$2.520 | ~Rp 45 jt |
| Tinggi (skala penuh + Pro) | 500 jt / 150 jt | ~$560 | ~$6.700 | ~Rp 119 jt |
VPS vs AWS vs On-premise
Untuk stack Laravel + Inertia + MySQL + Redis, 4 aplikasi. Kurs Rp 17.800/USD, region Jakarta untuk residensi data.
Opsi 1 — VPS Sumopod (rekomendasi awal)
Spesifikasi acuan per aplikasi: 2 vCPU / 8 GB RAM / 80 GB storage di Sumopod — harga Rp 150.000/bulan per aplikasi (penyedia lokal, residensi data Indonesia).
| Skenario | Komposisi | Per bulan | Per tahun |
|---|---|---|---|
| Per aplikasi | 1 VPS (2 vCPU / 8 GB / 80 GB) | Rp 150 rb | Rp 1,8 jt |
| 4 aplikasi terpisah | 4 VPS | Rp 600 rb | Rp 7,2 jt |
| 4 app + Portal | 5 VPS | Rp 750 rb | Rp 9 jt |
| + DB/Redis terpisah | 6 VPS (1 untuk basis data bersama) | Rp 900 rb | Rp 10,8 jt |
Harga Sumopod Rp 150 rb/bln per VPS (2 vCPU / 8 GB / 80 GB). Untuk beban berat (rule engine ±300 rb tx/hari) paket DB dapat dinaikkan; storage 80 GB memadai untuk awal dan ditambah sesuai pertumbuhan data & audit trail.
Opsi 2 — AWS (region ap-southeast-3 Jakarta)
| Komponen | Contoh | Per bulan |
|---|---|---|
| Compute (app) | 2× EC2 m6i.large | ~$140 |
| Database | RDS MySQL m6i.large Multi-AZ | ~$280 |
| Cache | ElastiCache Redis | ~$60 |
| Storage + transfer | S3, EBS, egress | ~$55 |
| Load balancer + lain-lain | ALB, backup, CloudWatch | ~$65 |
| Total | — | ~$600/bln (~Rp 10,7 jt) · ~Rp 128 jt/th |
Skala kecil bisa ~$300/bln; skala tinggi (auto-scaling, WAF, multi-AZ penuh) bisa > $1.200/bln.
Opsi 3 — On-premise
| Pos | Rincian | Biaya |
|---|---|---|
| Capex — server app | 2× server (CPU/RAM memadai) | ~Rp 70–90 jt |
| Capex — server DB | 1× server DB + storage RAID | ~Rp 80–120 jt |
| Capex — jaringan/UPS/rack | Switch, firewall, UPS, rak | ~Rp 40–60 jt |
| Total capex | Sekali (depresiasi 4–5 th) | ~Rp 200–270 jt |
| Opex/bulan | Listrik, pendingin, colo, maintenance, admin | ~Rp 6–10 jt |
| TCO tahun-1 | Capex + 12× opex | ~Rp 280–390 jt |
Perbandingan & rekomendasi
| Kriteria | VPS | AWS | On-prem |
|---|---|---|---|
| Biaya tahun-1 | ~Rp 9 jt | ~Rp 128 jt | ~Rp 280 jt+ |
| Skalabilitas/elastis | Manual | Tinggi | Terbatas |
| Layanan terkelola | Sedikit | Lengkap | Mandiri |
| Kontrol & residensi data | Baik | Baik (Jakarta) | Penuh |
| Beban operasional tim | Rendah | Sedang | Tinggi |
Ringkasan keputusan
Arsitektur
Hybrid — 4 app terpisah + Portal sebagai platform (SSO, e-Sign, MoM, audit). Bisa di-deploy tergabung bila klien mau.
Timeline
17 Jun – 15 Agu (4 sprint). Fondasi → modul inti → AI & e-Sign/MoM → UAT/security → go-live bertahap.
Biaya indikatif
AI Gemini dev ~Rp 2,85 jt; prod ~Rp 13,5–119 jt/th. Infra: VPS Sumopod ~Rp 9 jt/th (4 app + Portal, disarankan untuk mulai).