
Integer vs Decimal untuk Uang di Postgres: Dua ERP, Dua Jawaban
Saya memakai integer rupiah di satu produk dan Decimal(15,2) di produk lain. Ini cara rounding, persentase, JSON dan mata uang menentukan pemenangnya.
Baca SelengkapnyaBlog
Artikel tentang arsitektur backend, desain API, dan pola database — NestJS, PostgreSQL, dan membangun sistem server-side yang andal.
102 artikel

Saya memakai integer rupiah di satu produk dan Decimal(15,2) di produk lain. Ini cara rounding, persentase, JSON dan mata uang menentukan pemenangnya.
Baca Selengkapnya
Envoy AI Gateway berganti nama menjadi Agent Router. Saya membaca post rename dan release notes 1.2 untuk melihat apa yang tetap dan apa yang rusak.
Baca Selengkapnya
Kapan service sebaiknya memanggil service lain lalu menunggu, dan kapan cukup publish message: hitungan availability, latency, penanganan failure, consistency, dan hybrid 202 Accepted.
Baca Selengkapnya
Partitioning memecah satu tabel di dalam satu database server, sharding menyebar data ke beberapa server. DDL Postgres, output EXPLAIN dan shard router.
Baca Selengkapnya
Latency vs throughput dijelaskan: arti masing-masing, hubungan lewat Little's law, kenapa batching dan queue saling menukar keduanya, serta cara optimasinya.
Baca Selengkapnya
Bloom filter adalah bit array plus k hash function yang menjawab mungkin ada atau pasti tidak ada. Lihat rumus m dan k, error rate terukur, dan pemakaiannya.
Baca Selengkapnya
Bagaimana service discovery bekerja di microservices? Registry, heartbeat, TTL, client-side vs server-side, DNS di Docker Compose dan Kubernetes, Consul.
Baca Selengkapnya
Cara kerja leader election di distributed systems: lease Postgres dengan fencing epoch, alternatif Redis dan etcd, Lease Kubernetes, dan split-brain.
Baca Selengkapnya
Pub/sub vs message queue: competing consumers versus fan-out, delivery guarantee, ordering, replay, consumer group, plus checklist untuk job, notifikasi dan event.
Baca Selengkapnya
Cara kerja algoritma konsensus Raft: term dan role, leader election dengan timeout acak, log replication dan commit index, hitungan quorum untuk 3, 5, 7 node, safety, serta pemakaian di etcd dan Consul.
Baca Selengkapnya
Backpressure adalah cara consumer yang lambat meminta producer yang cepat melambat. Bahas bounded queue, load shedding, drain Node.js, autoscaling.
Baca Selengkapnya
Apa itu bulkhead pattern, bagaimana satu dependency yang lambat menguras shared pool, cara isolasi dengan pool, semaphore, queue dan container, serta cara menentukan ukurannya.
Baca Selengkapnya
Cara melakukan retry request yang gagal dengan aman: error mana yang di-retry, hitungan retry storm, exponential backoff dengan jitter, Retry-After, retry budget, dan idempotency key, lengkap dengan helper TypeScript.
Baca Selengkapnya
ACID vs BASE dengan contoh Postgres: apa yang dijaga tiap huruf ACID, kenapa BASE hanya plesetan bukan standar, dan cara memilih per fitur di praktik.
Baca Selengkapnya
Apa itu transaction isolation level database dan mana yang dipakai. READ COMMITTED, REPEATABLE READ, SERIALIZABLE di PostgreSQL dengan output dua sesi asli dan retry loop.
Baca Selengkapnya
Cara mendesain distributed key-value store ala Dynamo: consistent hashing, quorum N/W/R, vector clock, hinted handoff, Merkle tree, gossip, dan node LSM.
Baca Selengkapnya
Cara mendesain sistem flash sale yang tidak oversell stok: atomic decrement di Postgres dan Redis Lua, reservasi dengan TTL, waiting room, sharded counter, dan rekonsiliasi.
Baca Selengkapnya
Apa jaminan eventual consistency, bagaimana replica konvergen lewat LWW, version vector dan CRDT, serta fitur mana yang boleh membaca data stale dan mana yang tidak.
Baca Selengkapnya
Two-phase commit vs saga untuk distributed transaction: bagaimana 2PC memblokir dan menahan lock, apa yang ditawarkan PREPARE TRANSACTION, dan kapan saga lebih cocok.
Baca Selengkapnya
Cara mendesain payment system yang tidak kehilangan atau menagih ganda: state machine pembayaran, ledger double-entry append-only dalam integer sen, idempotency key, webhook, dan reconciliation harian.
Baca Selengkapnya
Bagaimana mendesain web crawler yang scalable? Desain lengkap: URL frontier, robots.txt menurut RFC 9309, dedup, DNS caching, crawler trap dan jadwal recrawl.
Baca Selengkapnya
Cara mendesain distributed job scheduler yang menjalankan tiap job sekali: slot row, lease Postgres SKIP LOCKED, advisory lock, catch-up, retry, dan handler idempotent.
Baca Selengkapnya
Cara membuat ID unik di banyak server: batas auto-increment, dampak UUIDv4 pada index, UUIDv7 di RFC 9562, layout Snowflake 41/10/12, clock rollback, dan block allocation.
Baca Selengkapnya
Bagaimana aplikasi menemukan driver atau tempat terdekat? Geohash vs quadtree dengan TypeScript, PostGIS ST_DWithin, Redis GEOSEARCH, dan hitungan write rate.
Baca Selengkapnya