intermediate 1 min answer

A mobile application relies on push notifications and background processing for time-sensitive updates. What is unreliable, and what must the design assume?

zeptopushbackgroundreliabilitybatching
Show the full answer Hide the answer

What is unreliable

Everything about push and background execution. The platform may delay a notification, batch it, drop it, or decline to wake the application at all — based on battery state, user behaviour, and the operating system's own heuristics that vary by version and by manufacturer.

Background execution is granted, not guaranteed, and the grant is revoked for applications the user rarely opens.

What the design must assume

  • A notification may never arrive. Anything that must happen must have a server-side path that does not depend on the device — an order state change is applied server-side and the notification informs, rather than the notification triggering the change.
  • A notification may arrive late, so anything time-sensitive must carry the time it was generated and the client must decide whether it is still relevant.
  • Background sync may not run, so the application must reconcile on foreground rather than assuming its local state is current.
  • Ordering is not guaranteed, so notifications must be idempotent and independently meaningful.

The fan-out consideration

A large notification send must respect the platform provider's quotas and must be spread, since a burst is throttled and the throttled portion is delayed unpredictably.

And the priority matters: a delivery-arriving notification is time-critical and a promotional one is not — sending them through the same path means the promotional volume delays the critical one, which is the common failure during a marketing send.

The user-experience consequence

A notification the user cannot act on is worse than none. A "your order is arriving" notification that arrives after the order arrived produces distrust in every subsequent one — and users disable notifications wholesale rather than selectively, so one badly-timed category costs the channel entirely.

That makes notification quality an architectural concern, since the ability to send is worth nothing once users have turned it off.