Skip to content

PROJECT / 06

Audit Trail Service

Who changed what, when — answered in one query.

ROLE
Software Architect
YEAR
2026
STACK
Laravel, PostgreSQL, Queues
STATUS
SHIPPED ✓

THE PROBLEM

Setiap module mencatat log dengan format berbeda. Investigasi insiden berarti membuka 5 tempat berbeda.

CONTEXT

Kebutuhan compliance dan debugging lintas unit bisnis.

CONSTRAINTS

  • •Minimal write overhead
  • •Cross-module
  • •Queryable
  • •Retention policy

SOLUTION

Event-based audit: model memancarkan event, listener antrean menulis ke tabel audit terpusat dengan JSONB diff.

ARCHITECTURE

SVG/HTML diagram — accessible, selectable, SEO-friendly. No WebGL here on purpose.

LARAVELPOSTGRESQLQUEUES

TECHNICAL DECISIONS

WHY THIS STACK?

Queue memisahkan write path kritis dari pencatatan. JSONB PostgreSQL membuat diff tetap queryable.

WHY NOT SEPARATE SERVICE?

Skala saat ini belum butuh network hop tambahan. Library + konvensi memberi 80% manfaat dengan 20% biaya.

TRADE-OFF?

Audit bersifat eventual-consistent (detik). Untuk kasus ini dapat diterima dan didokumentasikan.

WHAT WOULD I CHANGE AT 10× SCALE?

Ekstraksi menjadi service sendiri dengan stream (Kafka/Redpanda) dan cold storage.

RESULT

  • ✓ Single audit query
  • ✓ Consistent format
  • ✓ Negligible write overhead
  • ✓ Faster incident investigation

LESSONS

Observability adalah fitur produk, bukan tambahan. Audit yang bagus membuat semua orang lebih tenang.