---
title: "Tuanhdotnet (@tuananh8) | Hashnode"
description: "I am Tuanh.net. As of 2024, I have accumulated 8 years of experience in backend programming. I am delighted to connect and share my knowledge with everyone."
url: "https://hashnode.com/@tuananh8"
---

@tuananh8

# Tuanhdotnet

@tuananh8 · Joined August 2024

[Website](https://www.tuanh.net/)

### [Reasons TTL Alone Is a Weak Cache Strategy for Frequently Updated Business Data](https://tuanhnet.hashnode.dev/reasons-ttl-alone-is-a-weak-cache-strategy-for-frequently-updated-business-data?utm_source=hashnode&utm_medium=feed)

A deep technical look at why relying only on time-to-live (TTL) is often insufficient for caching business data that changes frequently. Covers failure modes, performance trade-offs, edge cases, and practical alternatives with detailed Java examp...

12 min read · [tuanhnet.hashnode.dev](https://tuanhnet.hashnode.dev/reasons-ttl-alone-is-a-weak-cache-strategy-for-frequently-updated-business-data?utm_source=hashnode&utm_medium=feed)

[May 11](https://hashnode.com/posts/reasons-ttl-alone-is-a-weak-cache-strategy-for-frequently-updated-business-data/6a019a9d5ce840c358fbff17)

### [Techniques: How to design versioned commands so retries stay safe under concurrent modification?](https://tuanhnet.hashnode.dev/techniques-how-to-design-versioned-commands-so-retries-stay-safe-under-concurrent-modification?utm_source=hashnode&utm_medium=feed)

A deep, practical guide on designing versioned command patterns that let automated retries remain safe in the face of concurrent updates. Covers optimistic compare-and-swap, idempotency envelopes, retry policies, distributed versioning, performan...

12 min read · [tuanhnet.hashnode.dev](https://tuanhnet.hashnode.dev/techniques-how-to-design-versioned-commands-so-retries-stay-safe-under-concurrent-modification?utm_source=hashnode&utm_medium=feed)

[May 8](https://hashnode.com/posts/techniques-how-to-design-versioned-commands-so-retries-stay-safe-under-concurrent-modification/69fda622a6365f430bd2472c)

### [Techniques to Partition Data for Growth Without Breaking Query Simplicity](https://tuanhnet.hashnode.dev/techniques-to-partition-data-for-growth-without-breaking-query-simplicity?utm_source=hashnode&utm_medium=feed)

A deep, practical guide on partitioning and sharding strategies that let systems scale while keeping queries simple, with concrete Java examples and operational trade-offs to help architects and engineers make pragmatic choices.

12 min read · [tuanhnet.hashnode.dev](https://tuanhnet.hashnode.dev/techniques-to-partition-data-for-growth-without-breaking-query-simplicity?utm_source=hashnode&utm_medium=feed)

[May 6](https://hashnode.com/posts/techniques-to-partition-data-for-growth-without-breaking-query-simplicity/69fb033597fb8f6733692b81)

### [Methods to Move Cross-Cutting Logic Out of Controllers Without Building a Mystery Box](https://tuanhnet.hashnode.dev/methods-to-move-cross-cutting-logic-out-of-controllers-without-building-a-mystery-box?utm_source=hashnode&utm_medium=feed)

Practical, expert patterns for extracting logging, validation, security, metrics, and transaction concerns out of Spring controllers while preserving clarity, testability, and predictable performance—no opaque "magic" layers, only explicit, maint...

11 min read · [tuanhnet.hashnode.dev](https://tuanhnet.hashnode.dev/methods-to-move-cross-cutting-logic-out-of-controllers-without-building-a-mystery-box?utm_source=hashnode&utm_medium=feed)

[May 5](https://hashnode.com/posts/methods-to-move-cross-cutting-logic-out-of-controllers-without-building-a-mystery-box/69f9b1a2608b1f76d5a51ca6)

### [Reasons Java services get slower after a few hours: How to find thread pool saturation?](https://tuanhnet.hashnode.dev/reasons-java-services-get-slower-after-a-few-hours-how-to-find-thread-pool-saturation?utm_source=hashnode&utm_medium=feed)

A practical, deep-dive guide explaining why Java services often slow down after running for hours, how thread-pool saturation produces this pattern, how to detect it with metrics and code, and the concrete fixes and trade-offs engineers should ap...

10 min read · [tuanhnet.hashnode.dev](https://tuanhnet.hashnode.dev/reasons-java-services-get-slower-after-a-few-hours-how-to-find-thread-pool-saturation?utm_source=hashnode&utm_medium=feed)

[May 4](https://hashnode.com/posts/reasons-java-services-get-slower-after-a-few-hours-how-to-find-thread-pool-saturation/69f8604287b1809c5b024bef)
