Skip to main content

Blog

Backend & API

Artikel tentang arsitektur backend, desain API, dan pola database — NestJS, PostgreSQL, dan membangun sistem server-side yang andal.

102 artikel

Integer vs Decimal untuk Uang di Postgres: Dua ERP, Dua Jawaban
BackendOktober 202610 menit baca

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 Selengkapnya
Envoy AI Gateway Kini Agent Router: Apa yang Berubah di 1.2
BackendOktober 202612 menit baca

Envoy AI Gateway Kini Agent Router: Apa yang Berubah di 1.2

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
Komunikasi Sync vs Async Microservices: Cara Memilih
BackendOktober 202611 menit baca

Komunikasi Sync vs Async Microservices: Cara Memilih

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
Database Partitioning vs Sharding: Apa Bedanya?
BackendOktober 202610 menit baca

Database Partitioning vs Sharding: Apa Bedanya?

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: Perbedaan, Trade-off dan Tuning
BackendOktober 202610 menit baca

Latency vs Throughput: Perbedaan, Trade-off dan Tuning

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 Explained: Kapan Dipakai di System Design
BackendOktober 202611 menit baca

Bloom Filter Explained: Kapan Dipakai di System Design

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
Service Discovery di Microservices: Cara Kerjanya
BackendOktober 202611 menit baca

Service Discovery di Microservices: Cara Kerjanya

Bagaimana service discovery bekerja di microservices? Registry, heartbeat, TTL, client-side vs server-side, DNS di Docker Compose dan Kubernetes, Consul.

Baca Selengkapnya
Leader Election di Distributed Systems: Lease dan Fencing
BackendOktober 202612 menit baca

Leader Election di Distributed Systems: Lease dan Fencing

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: Perbedaan dan Kapan Memakainya
BackendOktober 202610 menit baca

Pub/Sub vs Message Queue: Perbedaan dan Kapan Memakainya

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
Algoritma Konsensus Raft: Penjelasan Election dan Log
BackendOktober 202614 menit baca

Algoritma Konsensus Raft: Penjelasan Election dan Log

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 di Distributed Systems: Hentikan Producer Cepat
BackendOktober 202611 menit baca

Backpressure di Distributed Systems: Hentikan Producer Cepat

Backpressure adalah cara consumer yang lambat meminta producer yang cepat melambat. Bahas bounded queue, load shedding, drain Node.js, autoscaling.

Baca Selengkapnya
Bulkhead Pattern Explained: Isolate Failures in Backend Systems
BackendOktober 202611 menit baca

Bulkhead Pattern Explained: Isolate Failures in Backend Systems

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
Retry dengan Exponential Backoff dan Jitter di TypeScript
BackendOktober 202613 menit baca

Retry dengan Exponential Backoff dan Jitter di TypeScript

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: Model Konsistensi Database dan Kapan Penting
BackendOktober 202611 menit baca

ACID vs BASE: Model Konsistensi Database dan Kapan Penting

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
Transaction Isolation Level di PostgreSQL: Penjelasan Lengkap
BackendOktober 202613 menit baca

Transaction Isolation Level di PostgreSQL: Penjelasan Lengkap

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
BackendOktober 202613 menit baca

Cara Mendesain Distributed Key-Value Store ala Dynamo

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
Desain Sistem Flash Sale yang Tidak Oversell Stok
BackendOktober 202614 menit baca

Desain Sistem Flash Sale yang Tidak Oversell Stok

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
Eventual Consistency Explained: Kapan Data Stale Boleh?
BackendOktober 202610 menit baca

Eventual Consistency Explained: Kapan Data Stale Boleh?

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: Distributed Transaction Dibandingkan
BackendOktober 202610 menit baca

Two-Phase Commit vs Saga: Distributed Transaction Dibandingkan

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
Desain Payment System: Ledger, Idempotency, Reconciliation
BackendOktober 202614 menit baca

Desain Payment System: Ledger, Idempotency, Reconciliation

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
Desain Web Crawler: URL Frontier, robots.txt dan Dedup
BackendOktober 202614 menit baca

Desain Web Crawler: URL Frontier, robots.txt dan Dedup

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
Desain Distributed Job Scheduler: Jalan Sekali per Job
BackendOktober 202613 menit baca

Desain Distributed Job Scheduler: Jalan Sekali per Job

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
Distributed ID Generator: Snowflake vs UUIDv7 vs ULID
BackendOktober 202612 menit baca

Distributed ID Generator: Snowflake vs UUIDv7 vs ULID

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
Geohash vs Quadtree: Cara Kerja Pencarian Driver Terdekat
BackendOktober 202614 menit baca

Geohash vs Quadtree: Cara Kerja Pencarian Driver Terdekat

Bagaimana aplikasi menemukan driver atau tempat terdekat? Geohash vs quadtree dengan TypeScript, PostGIS ST_DWithin, Redis GEOSEARCH, dan hitungan write rate.

Baca Selengkapnya

Lainnya di kategori ini