<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://minhle.xyz</loc>
<lastmod>2026-06-03T07:01:40.444Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://minhle.xyz/blog</loc>
<lastmod>2026-06-03T07:01:40.444Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://minhle.xyz/support</loc>
<lastmod>2026-06-03T07:01:40.444Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/kafka</loc>
<lastmod>2025-11-04T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/redis</loc>
<lastmod>2025-11-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/elastic</loc>
<lastmod>2025-12-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/kibana</loc>
<lastmod>2025-10-12T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/postgres</loc>
<lastmod>2026-05-19T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/database</loc>
<lastmod>2025-12-22T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/docker</loc>
<lastmod>2026-02-18T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/kubernetes</loc>
<lastmod>2026-05-28T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/observability</loc>
<lastmod>2026-05-25T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/system-design</loc>
<lastmod>2026-05-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/microservices</loc>
<lastmod>2026-05-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/concurrency</loc>
<lastmod>2025-06-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/scaling</loc>
<lastmod>2026-01-09T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/security</loc>
<lastmod>2026-05-26T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/testing</loc>
<lastmod>2026-04-18T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/aws</loc>
<lastmod>2026-03-15T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/react</loc>
<lastmod>2026-06-01T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/nextjs</loc>
<lastmod>2026-05-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/typescript</loc>
<lastmod>2026-05-10T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/topic/ai</loc>
<lastmod>2026-05-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kafka-internals-log-segments-offsets-commit-protocol</loc>
<lastmod>2025-08-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kafka-exactly-once-semantics-idempotence-transactions</loc>
<lastmod>2025-08-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kafka-consumer-group-rebalancing-cooperative-static</loc>
<lastmod>2025-09-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kafka-partitioning-strategy-keys-hot-partitions-ordering</loc>
<lastmod>2025-10-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kafka-streams-vs-flink-vs-plain-consumer</loc>
<lastmod>2025-10-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/redis-single-threaded-event-loop-explained</loc>
<lastmod>2025-07-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/redis-persistence-rdb-aof-durability</loc>
<lastmod>2025-08-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/redis-cache-stampede-patterns</loc>
<lastmod>2025-09-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/redis-data-structures-beyond-strings</loc>
<lastmod>2025-09-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/redis-cluster-hash-slots-resharding</loc>
<lastmod>2025-10-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/elasticsearch-inverted-index-101</loc>
<lastmod>2025-07-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/elasticsearch-shard-sizing</loc>
<lastmod>2025-08-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/elasticsearch-mapping-explosion</loc>
<lastmod>2025-09-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/elasticsearch-scoring-bm25-boosting-rescoring</loc>
<lastmod>2025-09-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/elasticsearch-aggregations-deep-dive</loc>
<lastmod>2025-10-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kibana-discover-lens-tsvb-which-one</loc>
<lastmod>2025-07-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kibana-index-patterns-data-views-runtime-fields</loc>
<lastmod>2025-08-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kibana-kql-vs-lucene-syntax</loc>
<lastmod>2025-08-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kibana-alerting-rules-connectors-noise</loc>
<lastmod>2025-09-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/acid-demystified-what-each-letter-costs</loc>
<lastmod>2025-06-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/n-plus-one-query-problem</loc>
<lastmod>2025-06-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/database-indexing-btree-hash-when-each-helps</loc>
<lastmod>2025-07-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/pessimistic-vs-optimistic-locking</loc>
<lastmod>2025-07-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/race-conditions-bugs-that-only-show-up-in-prod</loc>
<lastmod>2025-05-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/deadlocks-four-conditions-how-to-break</loc>
<lastmod>2025-05-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/thread-safety-mutexes-atomics-immutability</loc>
<lastmod>2025-06-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/horizontal-vs-vertical-scaling</loc>
<lastmod>2025-04-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/cap-theorem-what-it-actually-says</loc>
<lastmod>2025-04-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/idempotency-in-apis-retry-bugs</loc>
<lastmod>2025-05-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kibana-spaces-roles-saved-object-security</loc>
<lastmod>2025-10-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/the-night-kafka-ate-itself-postmortem</loc>
<lastmod>2025-11-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/redis-hot-key-black-friday-postmortem</loc>
<lastmod>2025-11-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/elastic-mapping-bomb-diary</loc>
<lastmod>2025-12-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/postgres-nine-hour-migration-locks</loc>
<lastmod>2025-12-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/love-cell-based-architecture</loc>
<lastmod>2026-01-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/docker-layers-cow-filesystem-dockerfile-order</loc>
<lastmod>2026-02-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/docker-multi-stage-builds-1gb-to-80mb</loc>
<lastmod>2026-02-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kubernetes-for-people-who-hate-kubernetes</loc>
<lastmod>2026-03-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/production-kubernetes-checklist-11-things</loc>
<lastmod>2026-03-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/llm-parameters-temperature-topp-knobs-that-matter</loc>
<lastmod>2026-04-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/context-windows-cost-fit-more</loc>
<lastmod>2026-04-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/postgres-mvcc-vacuum-bloat</loc>
<lastmod>2025-11-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/postgres-explain-analyze-reading-plans</loc>
<lastmod>2025-12-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/observability-structured-logging</loc>
<lastmod>2025-11-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/observability-metrics-logs-traces</loc>
<lastmod>2026-01-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/system-design-idempotency-keys</loc>
<lastmod>2025-12-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/system-design-outbox-pattern</loc>
<lastmod>2026-02-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/security-jwt-2026</loc>
<lastmod>2025-12-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/security-oauth2-vs-oidc</loc>
<lastmod>2026-03-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/microservices-grpc-vs-rest</loc>
<lastmod>2026-01-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/microservices-service-boundaries</loc>
<lastmod>2026-04-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/testing-pyramid-modern</loc>
<lastmod>2026-02-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/testing-testcontainers</loc>
<lastmod>2026-04-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/aws-lambda-cold-starts</loc>
<lastmod>2026-01-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/aws-s3-patterns</loc>
<lastmod>2026-03-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/nextjs-rsc-vs-client</loc>
<lastmod>2026-02-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/nextjs-caching-four-layers</loc>
<lastmod>2026-05-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/typescript-discriminated-unions</loc>
<lastmod>2026-03-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/typescript-branded-types</loc>
<lastmod>2026-05-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/saga-pattern-distributed-transactions-without-2pc</loc>
<lastmod>2026-05-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/rate-limiting-token-bucket-leaky-bucket-sliding-window</loc>
<lastmod>2026-05-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/postgres-index-types-gin-gist-brin-hash</loc>
<lastmod>2026-05-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/postgres-connection-pooling-pgbouncer</loc>
<lastmod>2026-05-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/rag-retrieval-patterns-that-hold-up</loc>
<lastmod>2026-05-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/prompt-caching-cutting-llm-cost-and-latency</loc>
<lastmod>2026-05-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/slos-error-budgets-alerting-on-what-users-feel</loc>
<lastmod>2026-05-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/secrets-management-stop-shipping-keys-in-env</loc>
<lastmod>2026-05-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/distributed-monolith-how-microservices-go-wrong</loc>
<lastmod>2026-05-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/kubernetes-requests-and-limits</loc>
<lastmod>2026-05-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/react-reconciliation-keys-index</loc>
<lastmod>2026-05-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/react-useeffect-mental-model</loc>
<lastmod>2026-05-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/react-usememo-usecallback-react-memo-when-memoization-pays</loc>
<lastmod>2026-05-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/react-stale-closures-state-old</loc>
<lastmod>2026-05-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/react-context-rerenders-value-identity-splitting-store</loc>
<lastmod>2026-05-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://minhle.xyz/blog/react-server-client-components-use-client-boundary</loc>
<lastmod>2026-06-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
