sys-1970-cms-performance-issues-breakdown

activetype/docdomain/performance

SYS-1970 CMS Performance Issues Breakdown

Sumber: ClickUp task SYS-1970 — Performance Issue on CMS (status: in progress development). Daftar 12 child task, dikelompokkan by Database vs Backend, di-sort by impact. Will merge into broader CMS docs over time.

Database / Query issues (sorted by impact)

  • SYS-2022 — Fix row multiplication from 1:N LEFT JOINs in cover letter queries — High

    • Satu cover letter punya banyak data terkait (catatan, runner, dll). Query saat ini bikin satu cover letter muncul berkali-kali (sebanyak data terkaitnya), jadi sistem narik data 10x lipat dari yang dibutuhin. Perbaiki query supaya tiap cover letter cuma muncul sekali. Vault backlog: [[Projects/anabatic-contract-management-system/backlog/p1-sys-2022-cover-letter-join-cardinality]].
  • SYS-2027 — Slim trackingCovlet list query (avoid full getMany + heavy joins) — High

    • Halaman tracking minta semua kolom + semua tabel terkait ke database padahal cuma buat nampilin list ringkas. Minta cuma kolom yang beneran ditampilin di layar.
  • SYS-2025 — Replace non-sargable dateRangeBit predicates with index-friendly ranges — Normal

    • Filter tanggalnya ditulis dengan cara yang gak bisa di-optimize sama database — jadi database harus scan semua baris buat cek tanggal. Tulis ulang jadi format "antara tanggal X dan Y" supaya database bisa langsung loncat ke baris yang cocok pakai index-nya.
  • SYS-2029 — Refactor non-sargable scan-heavy filters (TO_CHAR/CASE/LOWER+LIKE) — Normal

    • Filter kayak "convert tanggal jadi teks dulu baru dibandingin" atau "lowercase semua dulu baru di-search" maksa database baca semua baris. Tulis ulang supaya database bisa pakai shortcut-nya (index).

Backend / Application issues (sorted by impact)

  • SYS-2023 — Add pagination/streaming for unbounded cover-letter reads and exports — High

    • Beberapa halaman dan export Excel narik semua cover letter sekaligus. Kalau datanya ribuan, server-nya nge-hang. Batasi per halaman, atau alirkan datanya bertahap (streaming).
  • SYS-2026 — Eliminate SLA priority N+1 lookups in row enrichment — High

    • Buat tiap cover letter di list, kode-nya bikin panggilan database terpisah cuma buat cari prioritas SLA-nya. 100 cover letter = 100 panggilan ekstra. Ambil semua prioritas dalam satu panggilan aja.
  • SYS-2024 — Skip getCalendarContext when holidays/businessHours already provided — Normal

    • Pas hitung "cover letter ini telat atau enggak", kode-nya ngambil ulang daftar hari libur dari database tiap kali, padahal datanya udah ada. Pakai aja yang udah di-load, jangan ambil ulang.
  • SYS-2028 — Remove duplicate DB calls in getPreviousLogNumber — Normal

    • Fungsi "apa log number sebelumnya?" mukul database dua kali buat jawaban yang sama. Simpan hasil panggilan pertama, pakai ulang.
  • SYS-2031 — Fix RunnerHelper offsetClause using limit instead of offset — Normal

    • Bug paginasi: helper yang harusnya "skip N baris pertama" malah jadi "tampilin cuma N baris". Salah parameter. Tinggal tuker.
  • SYS-2033 — Parallelize legacy contractMention SLA/date post-processing — Normal

    • Setelah list-nya diambil, kode hitung SLA dan tanggal buat tiap item satu-satu berurutan (serial). Jalanin barengan aja (paralel) — toh gak saling bergantung.
  • SYS-2030 — Validate export helper employee joins and domain correctness — Low

    • Cek ulang export Excel — pastiin join ke tabel employee yang benar dan gak nyampur data antar business unit. Ini quality-check, bukan fix kecepatan.
  • SYS-2032 — Address low/medium hotspots in cover-letter-fetch-new service — Low

    • Bersih-bersih kecil — inefisiensi kecil di service cover-letter-fetch-new, gak kritis tapi worth dirapiin kalau yang besar udah kelar.

Infra / Caching (sorted by impact)

  • SYS-2047 — Implement Redis cache for SLA module (priority/holidays/business hours) — High
    • Tambah Redis caching layer buat data master SLA (priority, holiday, business hours) supaya gak narik DB tiap kali enrichment list cover letter. Pelengkap struktural buat SYS-2026 dan SYS-2024. Detail: [[Projects/anabatic-contract-management-system/backlog/done/p1-sys-2047-redis-sla-cache]].

Urutan eksekusi yang masuk akal

  1. Hajar 5 High dulu (SYS-2022, SYS-2027, SYS-2023, SYS-2026, SYS-2047) — 2 query + 2 backend + 1 infra, bisa dikerjain paralel
  2. Lanjut Normal (SYS-2025, SYS-2029, SYS-2024, SYS-2028, SYS-2031, SYS-2033)
  3. Low (SYS-2030, SYS-2032) sambil santai

Related ClickUp links

  • Parent: SYS-1970 — Performance Issue on CMS
  • Existing audit report: [[Projects/anabatic-contract-management-system/reports/backend-cover-letter-query-performance-audit]]
  • Execution report (SYS-2022): [[Projects/anabatic-contract-management-system/context/clickup-execute-sys-2022-2026-05-13]]

Related

  • Duplicate inbox capture removed 2026-05-14 triage (canonical doc is this file).