Oh, my analysis:
Kafka: Semantics: what I want. Ops: my loads are so low, unless Kafka’s surprisingly crappy, little Ops burden.
Google PubSub: my system’s designed fundamentally as a batch system, with fanciness to support incremental updates. (Similar arguments as Nathan Marz uses to justify Lambda Architecture’s batch vs speed layers.) Running everything from scratch implies a commit log somewhere — increasingly a virtual Kafka.
Amazon Kinesis: 7 days retention? Pfft. My load’s so small, I’ll use Kafka as storage. Full retention.
PostgreSQL: NOTIFY/LISTEN seems brittle. I’d have to store consumer offsets: increasingly a virtual Kafka. I don’t need to query over commands/events (and if I did, it’s trivial to make a view over immutable commands/events).