01 / ARCHITECTURE

Why polling becomes expensive before it becomes obvious.

Polling is easy to start with: ask another system whether anything changed. The trouble begins when “every now and then” becomes part of a critical workflow.

4 minute read · Backend architecture

The first version usually works.

A small system can poll on a comfortable interval and appear perfectly healthy. There are few records, few consumers, and no meaningful cost to asking the same question again. That makes polling a sensible first answer—until freshness starts to matter.

scroll ↓ watch the pressure spread

freshness
01Consumerasks again
02APIanswers mostly “nothing”
03Sourcechanges on its own clock

One simple loop, pulled apart by scale.

Freshness has a cost.

To make information arrive sooner, the interval gets shorter. More consumers join. Each integration keeps its own schedule. The result is a growing number of requests that mostly return “nothing changed,” while the important update can still arrive later than the product needs.

The question is not “can we poll?” It is “how quickly must a meaningful change become available everywhere it matters?”

Choose the signal that fits the work.

When a change itself is important, it is often better to make that change a signal. An event or change stream lets interested systems respond when something happened, rather than continuously checking whether it might have happened.

That does not remove complexity. It shifts the work toward delivery guarantees, retries, ordering, and observability. But those are the real reliability questions anyway—and they are easier to reason about when the system has a clear record of the change moving through it.