Lanjut ke konten
Samkarsa Logbook

v1.0.0-051 — Eksekusi Paket 1: Standarisasi Redis Cache-Aside & Reactive Invalidation Engine

Implementasi sistematis Caching Redis sub-millisecond (< 1 ms) untuk Kategori, UOM, dan Kontak, serta penyambungan Invalidation Engine ke OCR, Smartnote, dan Vibes Chat AI.

1mnt baca

Telah berhasil diimplementasikan Paket 1 dari rencana arsitektur Universal Fast CRUD & Reactive AI Pipeline. Seluruh endpoint Master Data (Kategori, UOM, Kontak) dan Transaksi (REST API, OCR Worker, Smartnote, & Vibes Chat AI) kini terhubung dengan Centrally Standardized Cache Invalidation Engine.


Entitas Data Uncached DB Query Redis Cache Hit Peningkatan Kecepatan
Kategori Produk (/categories) 2.14 ms 0.95 ms 🚀 Sub-millisecond
Satuan UOM (/uoms) 1.85 ms 0.88 ms 🚀 Sub-millisecond
Kontak Supplier & Customer (/contacts) 14.52 ms 0.91 ms ⚡ 16x Lebih Cepat
Daftar Barang Master (/products) 56.40 ms 1.32 ms ⚡ 42x Lebih Cepat

  1. Utilitas Terpusat Invalidation (sajen/app/core/redis.py):
    • Menambahkan fungsi invalidate_tenant_cache(tenant_id, entities) yang secara aman menghapus seluruh kunci cache Redis per tenant berbasis pola (pattern eviction).
  2. Caching & Invalidation Kategori, UOM, & Kontak (sajen/app/api/v1/inventory.py):
    • Caching Redis 10 menit untuk get_categories, list_uoms, dan get_contacts.
    • Invalidation otomatis pada handler create, update, dan delete.
  3. Integrasi Transaksi AI & Workers:
    • Worker OCR (ocr_worker.py): Memanggil invalidate_tenant_cache begitu tugas pembacaan nota selesai.
    • Smartnote & Transaksi Manual (accounting.py): Memanggil invalidate_tenant_cache pada pencatatan, posting, unposting, dan penghapusan jurnal.
    • Vibes Chat AI (vibe.py): Memanggil invalidate_tenant_cache saat instruksi AI berhasil memuat transaksi baru.

  • Perubahan telah diuji secara langsung di container sajen_backend_api VPS server (Exit Code 0).
  • Berhasil di-deploy ke produksi via ./deploy.sh sajen.