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 |
- 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).
- Menambahkan fungsi
- Caching & Invalidation Kategori, UOM, & Kontak (
sajen/app/api/v1/inventory.py):- Caching Redis 10 menit untuk
get_categories,list_uoms, danget_contacts. - Invalidation otomatis pada handler
create,update, dandelete.
- Caching Redis 10 menit untuk
- Integrasi Transaksi AI & Workers:
- Worker OCR (
ocr_worker.py): Memanggilinvalidate_tenant_cachebegitu tugas pembacaan nota selesai. - Smartnote & Transaksi Manual (
accounting.py): Memanggilinvalidate_tenant_cachepada pencatatan, posting, unposting, dan penghapusan jurnal. - Vibes Chat AI (
vibe.py): Memanggilinvalidate_tenant_cachesaat instruksi AI berhasil memuat transaksi baru.
- Worker OCR (
- Perubahan telah diuji secara langsung di container
sajen_backend_apiVPS server (Exit Code 0). - Berhasil di-deploy ke produksi via
./deploy.sh sajen.