The FLP paper states
Crucial to our proof is that processing is completely asynchronous; that is, we
make no assumptions about the relative speeds of processes or about the delay
time in delivering a message. We also assume that processes do not have access to
synchronized clocks, so algorithms based on time-outs, for example, cannot be
used. (In particular, the solutions in  are not applicable.) Finally, we do not
postulate the ability to detect the death of a process, so it is impossible for one
process to tell whether another has died (stopped entirely) or is just running very
Additionally the blogger seems to be interpreting a much stricter version of Exactly Once than what I’ve heard Gian speak about with regards to ingestion… specifically:
The way we achieve exactly-once delivery in practice is by faking it. Either the messages themselves should be idempotent, meaning they can be applied more than once without adverse effects, or we remove the need for idempotency through deduplication. Ideally, our messages don’t require strict ordering and are commutative instead.
Exactly once in my eyes simply means that events coming in late, or resent from the source, or dropped due to internal service failure, all end up query-able (and only counted once in the query) using only a single stream-processing pipeline (no batch fixup).