Tin tức

Danh sách bài viết đã xuất bản.

API Rate Limiting with Redis: Algorithms, Design, and Operations

API Rate Limiting with Redis: Algorithms, Design, and Operations

Rate limiting is not only for blocking bots. It protects databases and dependencies from bursts, distributes resources fairly between tenants, controls API costs, and helps a system degrade predictably under load. A poorly designed limiter can instead block thousands of legitimate users behind NAT or become a new single point of failure.

Read more →
Transactional Outbox in Practice: Reliable Events After a Transaction

Transactional Outbox in Practice: Reliable Events After a Transaction

Creating an order commonly requires two writes: persist the order in a database and publish an OrderCreated event to a broker. If the database commits and publishing fails, inventory and email services never learn about the order. If publishing succeeds before the transaction rolls back, consumers process an order that does not exist. This is the dual-write problem.

Read more →
How to Install Uptime Kuma for Website, API, and SSL Monitoring

How to Install Uptime Kuma for Website, API, and SSL Monitoring

A website working when you manually open it does not mean it has been healthy all day. Regional DNS failures, expiring TLS certificates, incorrect API responses, or intermittent servers can continue for hours without proactive monitoring. Uptime Kuma is a self-hosted tool for periodic service checks, notifications, and status pages without building a full observability platform.

Read more →
Zero-Downtime Database Migrations: Expand, Migrate, Contract

Zero-Downtime Database Migrations: Expand, Migrate, Contract

A successful ALTER TABLE does not automatically make a deployment safe. In production, old and new application versions commonly overlap for minutes or longer. A migration that locks a table, renames a column immediately, or backfills millions of rows in one transaction can increase latency, exhaust the connection pool, and make rollback impossible.

Read more →
Git Worktree in Practice: Work on Multiple Branches Without Stashing

Git Worktree in Practice: Work on Multiple Branches Without Stashing

You are halfway through a feature when production suddenly needs a hotfix. The familiar response is to stash your changes, switch branches, fix the issue, and restore the original workspace. That becomes awkward when many files are uncommitted, dependencies are running, and the IDE already holds valuable context. git worktree solves this by giving one repository multiple working directories, each with its own checked-out branch.

Read more →