Skip to content
This repository was archived by the owner on Aug 11, 2026. It is now read-only.
This repository was archived by the owner on Aug 11, 2026. It is now read-only.

Peningkatan: performa aplikasi & database (query, index, pagination, pooling) #435

Description

@ahliweb

Konteks

Base sudah punya connection pooling + work-class backpressure + circuit breaker (Issue 10.2) dan pola akses data doc 16, tetapi belum ada audit performa sistematis: index belum diverifikasi cocok dengan predikat RLS, beberapa endpoint list belum keyset-paginated, dan belum ada baseline benchmark.

Tujuan

Menemukan & memperbaiki bottleneck nyata — ukur dulu, baru optimasi.

Scope (pakai skill awcms-mini-performance)

  • Index RLS-aware: EXPLAIN (ANALYZE, BUFFERS) pada query tenant-scoped panas; pastikan index komposit berprefiks (tenant_id, …); tambah index yang hilang via migration berurutan (nomor setelah 015).
  • Hilangkan N+1: cari await tx\…`di dalam loop; batch pakai= ANY(tx.array(ids,"uuid"))atau JOIN. (Lihat pola read-side*-directory.ts`.)
  • Keyset pagination: ganti LIMIT tanpa cursor / OFFSET besar dengan keyset (created_at,id) — mis. decision-logs (LIMIT 50 tetap), object-queue (LIMIT 200), audit log.
  • Kolom eksplisit (hindari SELECT *); pastikan bigint → Number(...).
  • Work-class: verifikasi endpoint berat (reporting, sync) tidak di kelas interactive; saturasi → 503 DATABASE_BUSY.
  • Materialized view / read model untuk laporan agregasi bila data tumbuh (saat ini agregasi baca langsung).
  • Baseline benchmark p50/p95/p99 untuk endpoint utama; catat sebelum/sesudah.

Definition of Done

  • EXPLAIN ANALYZE sebelum/sesudah membuktikan perbaikan (Seq→Index Scan, cost turun) untuk query yang diubah.
  • Tidak ada N+1 / OFFSET besar tersisa di endpoint yang tercakup.
  • Index baru lewat migration berurutan + test bentuk-migrasi; bun run db:pool:health sehat.
  • bun run check hijau. Uji beban ringan/backpressure TIDAK dijalankan pada issue ini (lihat komentar penutupan) — work-class reporting/background_sync sudah diverifikasi benar sejak Issue 10.2, tapi tidak ada load-test baru yang membuktikan antrean naik lalu mengering.

Referensi

Doc 16 (data access, pooling), doc 07 (target performa), docs/awcms-mini/database-pooling.md. Skill: awcms-mini-performance, awcms-mini-new-migration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:architectureStruktur repo, module contract, registryarea:databaseSchema, migration, pooling, RLSenhancementNew feature or requestpriority:p2Prioritas sedang - opsional/provider-dependentstatus:readyDependency selesai, siap dikerjakantype:taskAtomic implementation task

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions