October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk6 min

How to Keep Redis Cache Entries Fresh When Services Write to PostgreSQL

Oizom software lead Panth Patel describes moving cache invalidation closer to PostgreSQL writes, and the multi-instance problem that pushed the design beyond direct notifications.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When a database write comes from a service that does not know Redis exists, application-level cache invalidation can be missed. In an article by Panth Patel, who says he leads Oizom’s software team, the response is to capture PostgreSQL changes and have application-side listeners invalidate Redis entries. Patel also describes why simple PostgreSQL notifications caused duplicate work across application instances and how his team moved toward a table-backed listener design. This is his account, not an independently audited production case study.

Why application-owned cache invalidation misses writes

In a cache-aside design, an application checks Redis first and reads from PostgreSQL when the requested value is absent. It then stores the result in Redis for later requests. Patel’s example uses a 24-hour Redis time-to-live (TTL); that is an illustrative setting, not a measured staleness window or an Oizom production metric.

As an Amazon Associate I earn from qualifying purchases.

When an application function updates or deletes a database record, that function can also remove or refresh the corresponding Redis entry. The weak point is coverage: invalidation code is easy to omit, and not every write necessarily passes through that function. Another backend, an admin tool, a background job, or a direct database edit can change PostgreSQL while leaving a cached value untouched.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Patel’s progression: from cache wrappers to database events

Patel describes evolving the design in stages rather than treating one cache helper as a complete solution:

  1. Wrap cache operations. Centralize common cache reads and explicit invalidation so application code has a consistent way to work with Redis.
  2. Handle related cached views. Use a centralized callback to invalidate multiple cached results affected by a change, rather than relying on each update or delete path to remember every view.
  3. Capture database changes. Use PostgreSQL triggers to identify writes and notifications to alert application-side listeners, which then invalidate Redis keys. PostgreSQL does not directly mutate Redis in this design.
  4. Address listener fan-out. After finding that every listening backend received the notification, Patel describes moving toward a persistent change table and records of which listeners observed each change.

Patel also names small libraries from the JSR ecosystem for pub/sub, function wrappers, caching, and a Redis adapter. Those are implementation choices in his account; their current maintenance status and availability are not established here.

What PostgreSQL triggers guarantee—and what they couple

PostgreSQL triggers can run before or after INSERT, UPDATE, or DELETE, either once for each affected row or once for a statement. An AFTER trigger can inspect the final row value, which can be useful when recording the state that should prompt cache invalidation. The trigger can record a change or issue a notification, but a separate application listener still has to act on it.

The important reliability trade-off is transaction coupling: trigger work runs as part of the transaction that caused it. PostgreSQL’s documentation says, “In all cases, a trigger is executed as part of the same transaction as the statement that triggered it, so if either the statement or the trigger causes an error, the effects of both will be rolled back.” PostgreSQL trigger documentation

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

That behavior can prevent a database write from committing without its change-recording step, but it also means a trigger failure can make the original write fail. The trigger is therefore part of the write path, not an independent best-effort notification service. Teams should decide deliberately whether that coupling is acceptable for each table and operation.

Trigger coverage also depends on the SQL operations in use. PostgreSQL documents that partition row movement can generate row-level DELETE and INSERT trigger events; INSERT … ON CONFLICT and MERGE can invoke combinations of triggers; and cascaded SQL can fire triggers recursively. A design should account for these behaviors rather than assume every logical update appears as one simple event. PostgreSQL trigger documentation

Why NOTIFY alone can duplicate work across instances

PostgreSQL NOTIFY wakes listening connections; it is not a mechanism that selects one application instance to receive an event. Patel says that in Oizom’s setup, all listening backend instances received the notification and performed duplicate invalidation work. PostgreSQL NOTIFY documentation

For a cache delete, repetition may be harmless if the operation is idempotent: deleting an already-absent key still leaves it absent. But callbacks can do more than delete a key. If processing triggers another side effect, duplicate delivery needs its own safeguards. A notification fan-out should not be mistaken for a work queue with one guaranteed consumer.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the table-backed listener changes

Patel’s described alternative persists database changes in a table, tracks which listeners have observed each change, and uses notification as a wake-up signal. Persistence gives the application a record to consult instead of depending solely on a transient wake-up. The listener records provide a basis for coordinating observation across backends.

This is an account of the author’s approach, not evidence of exactly-once processing. A listener can fail between doing work and recording that it observed the event, or the reverse, depending on how processing and acknowledgement are arranged. Duplicate-safe invalidation, clear ownership of listener records, cleanup of old change rows, and recovery after a listener restart remain design decisions; the available account does not establish Oizom’s detailed failure-recovery behavior.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choosing between triggers, a change table, and CDC

These approaches differ in their relationship to the database transaction, recovery model, duplicate handling, and operational burden. The comparison below summarizes documented properties, not benchmark results.

Approach Write-transaction coupling Durability and replay Duplicates Operational footprint and delay
Trigger plus direct NOTIFY Trigger execution is part of the write transaction; a trigger error can roll back the write. PostgreSQL documentation A notification can wake listeners, but the Oizom account does not establish a durable replay mechanism for direct notifications. Every listening backend receives notifications; Patel reports duplicate invalidation work. PostgreSQL NOTIFY documentation Requires trigger logic and listeners. The source does not state a measured invalidation delay.
Trigger plus persistent change table When a trigger writes the change record, that work is coupled to the originating transaction. PostgreSQL documentation Persisted rows provide a record listeners can consult; the account does not establish replay guarantees or exact recovery semantics. Listener observation tracking is Patel’s response to fan-out, not proof of exactly-once delivery. PostgreSQL NOTIFY documentation Requires trigger, table, listener tracking, and cleanup logic. No measured delay is reported.
Redis Data Integration CDC The documented pipeline captures source changes and processes them downstream; the cited material does not characterize it as a PostgreSQL trigger in the write transaction. Redis documents checkpoints that permit reprocessing, along with backpressure when events arrive faster than processing. Redis Data Integration documentation Delivery is at least once, so processing should tolerate repeated events. Redis Data Integration documentation Uses a collector, Redis streams, and a processor; PostgreSQL is listed as a source, with supported versions varying by deployment. No comparative latency is established.

Redis describes its Data Integration (RDI) CDC pipeline as a collector capturing source changes, events placed in Redis streams, a processor transforming and writing the target, and checkpoints that allow reprocessing. Its at-least-once delivery model makes duplicate-tolerant processing important, and backpressure matters when processing falls behind. This is a separate option for comparison; it is not evidence that Oizom uses RDI. Redis Data Integration documentation

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Questions to settle before implementing invalidation

  • Which writes must be covered? List application services, scheduled jobs, operational tools, direct SQL, and relevant cascade or partition operations.
  • What does a change event represent? Decide whether it identifies a row, a cache key, or a broader cached view, and how related entries are handled.
  • Can the database write fail if change capture fails? A trigger that records changes inside the transaction creates that dependency.
  • What happens if a listener is down? Establish whether events can be found and processed after recovery, and how long change records remain available.
  • Are repeated events safe? Make invalidation idempotent where possible and separately protect callbacks with non-idempotent side effects.
  • How much delay is acceptable? Direct wake-ups and queued CDC pipelines have different processing paths; the cited account provides no measured Oizom latency for either.
  • Who operates the moving parts? A trigger, change table, listener tracking, or CDC collector and processor all introduce maintenance and monitoring responsibilities.

Patel’s example frames the central question well: “How does your team invalidate a cache when the write comes from a service that doesn’t know the cache exists?”

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.