Skip to main content

Posts

GitHub Page Deploy (Custom Domain)
·247 words·2 mins· loading · loading
Deploy Domain Github
Setting up domain configurations for GitHub Pages
Zero-Downtime Schema Migrations
·590 words·3 mins· loading · loading
Databases Databases Data Performance
Expand, migrate, verify, switch, and contract across independently deployed application versions.
Graceful Shutdown Without Dropping Requests
·601 words·3 mins· loading · loading
Go Go Concurrency Performance
Shutdown is a protocol: stop admission, drain in-flight work, flush state, then release dependencies.
Validating Requests Without Leaking Internals
·599 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Separate syntactic validation, domain rules, and authorization, then return stable problem details.
Lease-Based Distributed Locks
·628 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
A lease bounds stale ownership only when fencing tokens protect the resource from expired holders.
Load Shedding as a Correctness Feature
·625 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Rejecting excess work early preserves useful throughput and bounded latency for admitted requests.
The Lost Update and How to Prevent It
·598 words·3 mins· loading · loading
Databases Databases Data Performance
Atomic updates, locks, or optimistic versions must protect read-modify-write as one decision.
Retries, Timeouts, and the Latency Budget
·619 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Retries spend remaining deadline and capacity; they do not create either.
Raft Leader Election From First Principles
·625 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Randomized election timeouts and term monotonicity turn competing candidates into one current leader.
PostgreSQL Indexes From Query Shape
·595 words·3 mins· loading · loading
Databases Databases Data Performance
Design indexes from predicates, join keys, ordering, selectivity, and write cost together.
Capacity Planning With Little's Law
·607 words·3 mins· loading · loading
Platform Observability Kubernetes Reliability
Concurrency equals arrival rate times time in system, giving a fast check for queues and resource demand.
Designing Stable Go Packages
·600 words·3 mins· loading · loading
Go Go Concurrency Performance
A package is stable when its responsibilities, exported surface, and dependency direction are narrow.
ETCD Transactions for Coordination
·600 words·3 mins· loading · loading
Databases Databases Data Performance
Compare-and-swap plus leases can encode ownership, but clients must handle revision and expiry races.
Kafka Partitioning and Consumer Parallelism
·601 words·3 mins· loading · loading
Databases Databases Data Performance
The key determines ordering and skew; partition count sets the ceiling for group parallelism.
Structured Logging That Helps During Incidents
·593 words·3 mins· loading · loading
Platform Observability Kubernetes Reliability
Logs need stable event names, correlation, severity discipline, and deliberate data minimization.
Designing Idempotent Consumers
·622 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Persist the business effect and message identity in one atomic boundary whenever possible.
Consistent Hashing for Practical Sharding
·636 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
A hash ring limits key movement, but load balance still depends on virtual nodes and key distribution.
Transaction Isolation Through Anomalies
·594 words·3 mins· loading · loading
Databases Databases Data Performance
Choose isolation by naming the anomaly that would violate a business invariant.
Turning Product Requirements Into System Constraints
·603 words·3 mins· loading · loading
Architecture Architecture Engineering-Leadership System-Design
Translate user journeys into load, latency, consistency, privacy, availability, and cost envelopes.
Exactly Once Is Usually a Local Property
·617 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
End-to-end exactly-once claims decompose into deduplication, atomicity, and replay-safe effects.
API Versioning Without Permanent Forks
·599 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Prefer compatible evolution; version only when semantics truly conflict and plan convergence.
Ordering Events in Distributed Systems
·627 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Choose the weakest ordering guarantee the business invariant needs and encode it per entity.
Idempotency Keys for Write APIs
·611 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Bind a client key to request identity and persist the decided response for the retry window.
Building a Generic TTL Cache in Go
·600 words·3 mins· loading · loading
Go Go Concurrency Performance
Generics can remove unsafe casts while explicit synchronization and expiry semantics preserve correctness.
Reducing Allocations in Hot Go Paths
·599 words·3 mins· loading · loading
Go Go Concurrency Performance
Allocation work starts with profiles and escape analysis, then targets lifetime and representation.
Webhooks That Can Be Retried Safely
·597 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Sign payloads, preserve event identity, acknowledge quickly, and make processing replay-safe.
The Real Cost of a Microservice
·597 words·3 mins· loading · loading
Architecture Architecture Engineering-Leadership System-Design
Each service adds deployment, ownership, observability, compatibility, and failure-management obligations.
Structured Concurrency Patterns in Go
·601 words·3 mins· loading · loading
Go Go Concurrency Performance
Child goroutines should share cancellation, error propagation, and a bounded lifetime with their parent.
When Channels Are the Wrong Abstraction
·602 words·3 mins· loading · loading
Go Go Concurrency Performance
Use channels for ownership transfer and coordination, not as a universal replacement for locks.
Connection Pools Are Capacity Limits
·598 words·3 mins· loading · loading
Databases Databases Data Performance
Pool size must reflect database concurrency, transaction duration, and queueing—not application goroutine count.
Don't Use Synchronization Primitives In Go — Build Them Yourself
·702 words·4 mins· loading · loading
Go Concurrency Synchronization
Understand sync primitives deeper by building them.
Designing Batch Endpoints
·597 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Batch APIs need per-item outcomes, bounded size, deterministic identity, and explicit atomicity.
Safe File Upload Pipelines
·604 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Stream with hard limits, quarantine content, verify type independently, and decouple scanning from trust.
Quorums Without the Hand Waving
·627 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Intersecting read and write quorums provide a reasoning tool, not automatic availability or freshness.
Avoiding Goroutine Leaks
·596 words·3 mins· loading · loading
Go Go Concurrency Performance
Every goroutine needs an exit condition that remains reachable when downstream work stops.
Redis Caching Without Stale Data Surprises
·599 words·3 mins· loading · loading
Databases Databases Data Performance
Define ownership, expiry, invalidation, stampede control, and degraded behavior before adding cache code.
Gossip Protocols and Eventual Membership
·615 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Random peer exchange trades immediate agreement for scalable, failure-tolerant convergence.
Building Backpressure Into Go Pipelines
·592 words·3 mins· loading · loading
Go Go Concurrency Performance
A pipeline without bounded queues and cancellation is an outage amplifier.
gRPC Deadlines and Error Semantics
·605 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Deadlines cross service boundaries; status codes must separate retryable transport conditions from domain outcomes.
Handling Hot Keys Before They Melt a Service
·627 words·3 mins· loading · loading
Distributed-Systems Distributed-Systems Reliability System-Design
Detect skew, isolate the key, coalesce work, and change partitioning only with evidence.
Evolutionary Architecture With Fitness Functions
·611 words·3 mins· loading · loading
Architecture Architecture Engineering-Leadership System-Design
Automate checks for the architectural properties that must remain true as teams and systems change.
Rate Limiting With Token Buckets
·602 words·3 mins· loading · loading
Backend Api-Design Backend Integration
Token buckets express sustained rate and burst capacity while keeping admission decisions cheap.
Tracing Across gRPC Services
·594 words·3 mins· loading · loading
Platform Observability Kubernetes Reliability
Propagate context, name spans by operation, and attach identifiers without recording sensitive payloads.
The Mystery Of JSON Conversion From Float64 To Int64
·361 words·2 mins· loading · loading
Go Json Debug
Why Go JSON Unmarshal turns int64 into float64 and how to fix it.
Choosing Pointers and Values in Go APIs
·603 words·3 mins· loading · loading
Go Go Concurrency Performance
Choose receiver and parameter semantics from ownership, mutability, and copy cost rather than habit.
Keyset Pagination in PostgreSQL
·600 words·3 mins· loading · loading
Databases Databases Data Performance
Seek from the last ordered key to keep page cost stable and results coherent.
Incident Response From Symptom to Evidence
·599 words·3 mins· loading · loading
Platform Observability Kubernetes Reliability
Stabilize impact, preserve a timeline, test hypotheses with signals, and separate recovery from diagnosis.
Benchmarking Go Code Without Lying to Yourself
·606 words·3 mins· loading · loading
Go Go Concurrency Performance
Benchmarks need stable inputs, allocation reporting, multiple runs, and a comparison tied to user impact.
Secrets Management With Vault
·591 words·3 mins· loading · loading
Platform Observability Kubernetes Reliability
Use short-lived identity-bound credentials and design renewal and revocation as runtime paths.
ClickHouse Table Design for Event Analytics
·599 words·3 mins· loading · loading
Databases Databases Data Performance
Partition for lifecycle, order for filtering locality, and measure cardinality before choosing codecs.