# race-conditions

Published articles for race-conditions.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Cache invalidation is a distributed systems problem

DevFeed: [Cache invalidation is a distributed systems problem](<https://devfeed.tech/articles/cache-invalidation-is-a-distributed-systems-problem-in-a-convenience-costume-39604.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/52-cache-invalidation-distributed-problem/>)

Author: hello@ankit-rana.com

Published: 2026-09-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [Cache](<https://devfeed.tech/topics/cache.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [cache-invalidation](<https://devfeed.tech/tags/cache-invalidation.md>), [caching](<https://devfeed.tech/tags/caching.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [race-conditions](<https://devfeed.tech/tags/race-conditions.md>), [redis](<https://devfeed.tech/tags/redis.md>), [ttl](<https://devfeed.tech/tags/ttl.md>)

### AI overview

Cache invalidation coordinates updates between a database and a cache without a shared transaction. The article explains how operation ordering can let a concurrent reader repopulate stale data and recommends writing to the database before invalidating the cache, followed by a second invalidation to close the remaining race.

### Source excerpt

A cache and a database are two stores that must agree, which makes every invalidation a distributed transaction without a coordinator. The ordering matters more than the mechanism: invalidating before the database write leaves a window where a concurrent reader repopulates the cache with the old value and it stays wrong until the TTL expires. Deleting the key rather than writing the new value removes a whole class of ordering bug, because two concurrent deletes commute and two concurrent writes do not.

## Safe and scalable signal handling in Temporal Workflows

DevFeed: [Safe and scalable signal handling in Temporal Workflows](<https://devfeed.tech/articles/safe-and-scalable-signal-handling-in-temporal-workflows-35963.md>)

Original publisher: [Read original article](<https://temporal.io/blog/robust-message-handlers>)

Author: Drew Hoskins

Published: 2024-10-15T16:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Python](<https://devfeed.tech/topics/python.md>), [AI Chat](<https://devfeed.tech/topics/ai-chat.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [concurrency-control](<https://devfeed.tech/tags/concurrency-control.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [go](<https://devfeed.tech/tags/go.md>), [handler](<https://devfeed.tech/tags/handler.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [python](<https://devfeed.tech/tags/python.md>), [race-conditions](<https://devfeed.tech/tags/race-conditions.md>), [safety](<https://devfeed.tech/tags/safety.md>)

### AI overview

This article explains how Signal and Update handlers let callers interact with Temporal Workflows, focusing on concurrency problems, message-processing styles, and improvements intended to make handlers safer and easier to use.

### Source excerpt

Avoid race conditions in Temporal Workflows. Learn how new Signal and Update handler tools improve safety, initialization, and concurrency control.