# Pemikiran & Cerita: Backend

> Berbagi pengalaman, pembelajaran, dan petualangan saya di dunia teknologi dan lainnya.

URL: https://www.matthewswong.com/id/blog/category/backend/

- [Integer vs Decimal untuk Uang di Postgres: Dua ERP, Dua Jawaban](https://www.matthewswong.com/id/blog/integer-rupiah-vs-numeric-decimal-postgres-erp/)
- [Envoy AI Gateway Kini Agent Router: Apa yang Berubah di 1.2](https://www.matthewswong.com/id/blog/envoy-ai-gateway-becomes-agent-router-1-2/)
- [Komunikasi Sync vs Async Microservices: Cara Memilih](https://www.matthewswong.com/id/blog/sync-vs-async-microservices-communication/)
- [Database Partitioning vs Sharding: Apa Bedanya?](https://www.matthewswong.com/id/blog/database-partitioning-vs-sharding/)
- [Latency vs Throughput: Perbedaan, Trade-off dan Tuning](https://www.matthewswong.com/id/blog/latency-vs-throughput-explained/)
- [Bloom Filter Explained: Kapan Dipakai di System Design](https://www.matthewswong.com/id/blog/bloom-filter-explained-system-design/)
- [Service Discovery di Microservices: Cara Kerjanya](https://www.matthewswong.com/id/blog/service-discovery-microservices-explained/)
- [Leader Election di Distributed Systems: Lease dan Fencing](https://www.matthewswong.com/id/blog/leader-election-distributed-systems/)
- [Pub/Sub vs Message Queue: Perbedaan dan Kapan Memakainya](https://www.matthewswong.com/id/blog/pub-sub-vs-message-queue/)
- [Algoritma Konsensus Raft: Penjelasan Election dan Log](https://www.matthewswong.com/id/blog/raft-consensus-algorithm-explained/)
- [Backpressure di Distributed Systems: Hentikan Producer Cepat](https://www.matthewswong.com/id/blog/backpressure-distributed-systems-explained/)
- [Bulkhead Pattern Explained: Isolate Failures in Backend Systems](https://www.matthewswong.com/id/blog/bulkhead-pattern-fault-isolation/)
- [Retry dengan Exponential Backoff dan Jitter di TypeScript](https://www.matthewswong.com/id/blog/retry-exponential-backoff-jitter/)
- [ACID vs BASE: Model Konsistensi Database dan Kapan Penting](https://www.matthewswong.com/id/blog/acid-vs-base-database-consistency/)
- [Transaction Isolation Level di PostgreSQL: Penjelasan Lengkap](https://www.matthewswong.com/id/blog/database-transaction-isolation-levels-explained/)
- [Cara Mendesain Distributed Key-Value Store ala Dynamo](https://www.matthewswong.com/id/blog/design-key-value-store-from-scratch/)
- [Desain Sistem Flash Sale yang Tidak Oversell Stok](https://www.matthewswong.com/id/blog/design-flash-sale-inventory-system/)
- [Eventual Consistency Explained: Kapan Data Stale Boleh?](https://www.matthewswong.com/id/blog/eventual-consistency-explained/)
- [Two-Phase Commit vs Saga: Distributed Transaction Dibandingkan](https://www.matthewswong.com/id/blog/two-phase-commit-vs-saga/)
- [Desain Payment System: Ledger, Idempotency, Reconciliation](https://www.matthewswong.com/id/blog/design-payment-system-ledger-reconciliation/)
- [Desain Web Crawler: URL Frontier, robots.txt dan Dedup](https://www.matthewswong.com/id/blog/design-web-crawler-system-design/)
- [Desain Distributed Job Scheduler: Jalan Sekali per Job](https://www.matthewswong.com/id/blog/design-distributed-job-scheduler/)
- [Distributed ID Generator: Snowflake vs UUIDv7 vs ULID](https://www.matthewswong.com/id/blog/distributed-id-generator-snowflake-uuid/)
- [Geohash vs Quadtree: Cara Kerja Pencarian Driver Terdekat](https://www.matthewswong.com/id/blog/geohash-quadtree-nearby-search-design/)
- [Desain Aplikasi Chat Seperti WhatsApp: System Design Real-Time](https://www.matthewswong.com/id/blog/design-chat-application-system-design/)
- [Desain Sistem News Feed: Fan-Out on Write vs Fan-Out on Read](https://www.matthewswong.com/id/blog/design-news-feed-fan-out-on-write-vs-read/)
- [Desain Search Autocomplete (Typeahead): Trie, Redis, Postgres](https://www.matthewswong.com/id/blog/design-search-autocomplete-typeahead/)
- [Cara Mendesain Sistem Notifikasi Scalable (Push, Email, SMS)](https://www.matthewswong.com/id/blog/design-notification-system-architecture/)
- [Design URL Shortener Seperti bit.ly: Panduan System Design](https://www.matthewswong.com/id/blog/design-url-shortener-system-design/)
- [Token Bucket vs Sliding Window: Algoritma Rate Limiting](https://www.matthewswong.com/id/blog/rate-limiting-algorithms-token-bucket-sliding-window/)
- [Cache-Aside vs Write-Through vs Write-Back: Mana yang Cocok?](https://www.matthewswong.com/id/blog/cache-aside-vs-write-through-caching/)
- [Strategi Cache Invalidation: TTL, Event, dan Versioned Key](https://www.matthewswong.com/id/blog/cache-invalidation-strategies/)
- [Database Indexing Dijelaskan: Cara Kerja B-Tree di Postgres](https://www.matthewswong.com/id/blog/database-indexing-b-tree-explained/)
- [Database Replication: Leader-Follower, Sync vs Async](https://www.matthewswong.com/id/blog/database-replication-leader-follower/)
- [Read Replica Mengembalikan Data Lama: Atasi Replication Lag](https://www.matthewswong.com/id/blog/read-replicas-replication-lag-pitfalls/)
- [SQL vs NoSQL: Cara Memilih Database untuk Sistem Baru](https://www.matthewswong.com/id/blog/sql-vs-nosql-how-to-choose/)
- [Teorema CAP Dijelaskan: Dampaknya pada Pilihan Database](https://www.matthewswong.com/id/blog/cap-theorem-explained-practical-examples/)
- [Consistent Hashing Explained: Hash Ring dan Virtual Nodes](https://www.matthewswong.com/id/blog/consistent-hashing-explained/)
- [Tutorial Protokol A2A: Agent Card, Task, dan Binding v1.0](https://www.matthewswong.com/id/blog/a2a-protocol-v1-agent-cards-guide/)
- [Durable AI Agent dengan Temporal: Tahan Crash dan Penantian](https://www.matthewswong.com/id/blog/durable-ai-agents-temporal-workflows/)
- [Migrasi Spec MCP 2026-07-28: Panduan Stateless untuk Server](https://www.matthewswong.com/id/blog/mcp-2026-07-28-stateless-spec-migration/)
- [Migrasi OpenAI Assistants API yang Dimatikan ke Responses API](https://www.matthewswong.com/id/blog/openai-assistants-api-shutdown-migration/)
- [Durable Execution untuk AI Agent yang Berjalan Berjam-jam](https://www.matthewswong.com/id/blog/durable-execution-ai-agent-workflows/)
- [Library npm Approval ERP Saya Tembus 1.200 Weekly Downloads](https://www.matthewswong.com/id/blog/hierarchical-approval-1200-weekly-downloads/)
- [Batas Koneksi Postgres di PaaS: Bertahan dari max_connections](https://www.matthewswong.com/id/blog/paas-postgres-connection-limits-survival/)
- [Meninjau Migration Postgres Buatan AI Sebelum Dijalankan](https://www.matthewswong.com/id/blog/ai-database-migration-safety-review/)
- [Deploy NestJS ERP API ke Managed PaaS: Probe dan Migration](https://www.matthewswong.com/id/blog/deploy-nestjs-erp-api-paas-guide/)
- [Cetak Jaringan Epson TM-T82: Troubleshooting Port 9100](https://www.matthewswong.com/id/blog/epson-tm-t82-network-printing-troubleshooting/)
- [Membangun MCP Server di TypeScript: Panduan](https://www.matthewswong.com/id/blog/build-mcp-server-typescript-guide/)
- [Primitif MCP: Tools, Resources, dan Prompts](https://www.matthewswong.com/id/blog/mcp-tools-resources-prompts-primitives/)
- [Agen AI untuk Pengembangan ERP: Kasus Penggunaan Nyata](https://www.matthewswong.com/id/blog/ai-agents-erp-development-use-cases/)
- [Transport MCP: stdio vs Streamable HTTP](https://www.matthewswong.com/id/blog/mcp-transports-stdio-vs-http/)
- [Marketplace Price Monitoring SaaS: Tokopedia and Shopee](https://www.matthewswong.com/id/blog/marketplace-price-monitoring-saas-tokopedia-shopee/)
- [Multi-Tenant SaaS Architecture With Postgres RLS](https://www.matthewswong.com/id/blog/multi-tenant-saas-postgres-rls-indonesia/)
- [SaaS Recurring Billing in Indonesia: Midtrans and Xendit](https://www.matthewswong.com/id/blog/saas-recurring-billing-midtrans-xendit-qris-indonesia/)
- [WhatsApp Invoice Reminder SaaS: Build It for Indonesia](https://www.matthewswong.com/id/blog/whatsapp-invoice-reminder-saas-indonesia/)
- [Distributed Locking dengan Redis Redlock di Node.js](https://www.matthewswong.com/id/blog/distributed-locking-redis-redlock-nodejs/)
- [Turso dan libSQL: SQLite Edge dengan Embedded Replica](https://www.matthewswong.com/id/blog/turso-libsql-edge-sqlite/)
- [DuckDB: Analitik OLAP In-Process di Parquet, CSV, dan S3](https://www.matthewswong.com/id/blog/duckdb-in-process-analytics/)
- [Jalankan TypeScript Native di Node.js: Type Stripping](https://www.matthewswong.com/id/blog/nodejs-native-typescript-type-stripping/)
- [PostgreSQL 18: Async I/O, uuidv7 dan Skip Scan Dibahas](https://www.matthewswong.com/id/blog/postgresql-18-async-io-performance/)
- [Metode HTTP QUERY: GET Aman dengan Body (RFC 10008)](https://www.matthewswong.com/id/blog/http-query-method-rfc-10008/)
- [Integrasi Pembayaran Midtrans Snap ke Aplikasi Next.js](https://www.matthewswong.com/id/blog/midtrans-payment-gateway-integration-nextjs/)
- [Integrasi Pembayaran QRIS Dinamis di Node.js: Panduan Lengkap](https://www.matthewswong.com/id/blog/qris-dynamic-payment-integration-nodejs/)
- [Integrasi API Seller Shopee dan Tokopedia](https://www.matthewswong.com/id/blog/tokopedia-shopee-marketplace-api-integration/)
- [Integrasi WhatsApp Business Cloud API Resmi untuk Pasar Indonesia](https://www.matthewswong.com/id/blog/whatsapp-business-api-integration-indonesia/)
- [Xendit vs Midtrans: Payment Gateway Mana yang Dipilih di Indonesia](https://www.matthewswong.com/id/blog/xendit-vs-midtrans-payment-gateway-indonesia/)
- [Bun vs Node.js sebagai Runtime Produksi di 2026](https://www.matthewswong.com/id/blog/bun-vs-nodejs-production-runtime/)
- [Drizzle ORM vs Prisma untuk Backend TypeScript](https://www.matthewswong.com/id/blog/drizzle-orm-vs-prisma-typescript/)
- [Pola Expand/Contract untuk Migrasi Skema yang Aman](https://www.matthewswong.com/id/blog/expand-contract-schema-migration-pattern/)
- [Hono: Satu Basis Kode API untuk Workers, Bun, dan Node](https://www.matthewswong.com/id/blog/hono-edge-api-framework-guide/)
- [Pola Idempotent Consumer untuk Message Queue](https://www.matthewswong.com/id/blog/idempotent-consumer-pattern-message-queue/)
- [NATS JetStream vs Kafka untuk Tim yang Tidak Butuh Skala Kafka](https://www.matthewswong.com/id/blog/nats-jetstream-vs-kafka-lightweight/)
- [Provider Request-Scoped di NestJS: Jebakan DI](https://www.matthewswong.com/id/blog/nestjs-request-scoped-providers-di-gotchas/)
- [Keamanan Tipe End-to-End dengan openapi-typescript](https://www.matthewswong.com/id/blog/openapi-typescript-end-to-end-types/)
- [Distributed Tracing di NestJS dengan Auto-Instrumentation OpenTelemetry](https://www.matthewswong.com/id/blog/opentelemetry-tracing-nestjs-auto-instrumentation/)
- [Mode Pooling PgBouncer: Session vs Transaction vs Statement](https://www.matthewswong.com/id/blog/pgbouncer-connection-pooling-modes/)
- [Membaca PostgreSQL EXPLAIN ANALYZE Seperti Pro](https://www.matthewswong.com/id/blog/postgres-explain-analyze-reading-query-plans/)
- [Kolom Generated PostgreSQL untuk Data Terhitung](https://www.matthewswong.com/id/blog/postgres-generated-columns-computed-data/)
- [Upgrade Mayor PostgreSQL Tanpa Downtime dengan Logical Replication](https://www.matthewswong.com/id/blog/postgres-logical-replication-zero-downtime-upgrade/)
- [Job Queue Andal di PostgreSQL dengan SKIP LOCKED](https://www.matthewswong.com/id/blog/postgres-skip-locked-job-queue/)
- [Server-Sent Events vs WebSockets untuk Realtime](https://www.matthewswong.com/id/blog/server-sent-events-vs-websockets-realtime/)
- [Menjalankan SQLite di Produksi dengan Litestream](https://www.matthewswong.com/id/blog/sqlite-litestream-replication-production/)
- [Valkey vs Redis: Haruskah Anda Migrasi Setelah Fork?](https://www.matthewswong.com/id/blog/valkey-vs-redis-fork-migration/)
- [Kenapa Buku Kas ERP Saya Adalah View UNION Postgres Turunan](https://www.matthewswong.com/id/blog/derived-cash-book-union-view-postgres/)
- [Mengapa Kami Menyimpan Uang sebagai Bilangan Bulat Rupiah, Bukan Float](https://www.matthewswong.com/id/blog/integer-money-idr-avoid-float-errors/)
- [Idempotency Key yang Mencegah POS Menagih Dua Kali](https://www.matthewswong.com/id/blog/pos-payment-settlement-idempotency-keys/)
- [Kebenaran Stok: Buku Besar Pergerakan, Bukan Kolom](https://www.matthewswong.com/id/blog/stock-movement-source-of-truth-vs-cached-qty/)
- [NestJS Health Checks with Terminus for Kubernetes & Docker](https://www.matthewswong.com/id/blog/nestjs-terminus-health-checks/)
- [Decorator Kustom NestJS: Metadata, Reflector & Guard](https://www.matthewswong.com/id/blog/nestjs-custom-decorators-metadata-reflection/)
- [Menguji Aplikasi NestJS: Panduan Unit, Integrasi, E2E](https://www.matthewswong.com/id/blog/testing-nestjs-applications-guide/)
- [Pola Transactional Outbox dengan PostgreSQL](https://www.matthewswong.com/id/blog/transactional-outbox-pattern-postgres/)
- [Saga Pattern di NestJS: Transaksi Terdistribusi Tanpa 2PC](https://www.matthewswong.com/id/blog/saga-pattern-distributed-transactions-nestjs/)
- [PostgreSQL Row-Level Security untuk SaaS Multi-Tenant](https://www.matthewswong.com/id/blog/postgres-row-level-security-multitenant/)
- [Migrasi Database Tanpa Downtime dengan Prisma](https://www.matthewswong.com/id/blog/zero-downtime-database-migrations-prisma/)
- [Feature Flag di NestJS: Rollout Bertahap dan Kill Switch](https://www.matthewswong.com/id/blog/feature-flags-nestjs-progressive-rollout/)
- [Merancang Webhook yang Andal: Retry, Signing, dan Replay](https://www.matthewswong.com/id/blog/webhooks-reliable-delivery-design/)
- [Saya Membangun Library npm untuk Workflow Approval Hierarkis ERP](https://www.matthewswong.com/id/blog/hierarchical-approval-npm-library/)
- [Indexing PostgreSQL dalam Praktik: B-tree, GIN, dan Partial Index](https://www.matthewswong.com/id/blog/postgres-indexing-practical-guide/)
- [Idempotency Key: Mendesain API yang Tahan Retry](https://www.matthewswong.com/id/blog/idempotency-keys-api-design/)
- [Background Job yang Andal dengan BullMQ dan NestJS](https://www.matthewswong.com/id/blog/background-jobs-bullmq-nestjs/)
- [SNAP API & QRIS Antarnegara Indonesia: Panduan Developer untuk Integrasi Open Banking](https://www.matthewswong.com/id/blog/indonesia-open-banking-snap-api-qris-developer-guide/)

---

- HTML version: https://www.matthewswong.com/id/blog/category/backend/
- English: https://www.matthewswong.com/en/blog/category/backend/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
