Currently, the outbound publishing pathways (Doorkeeper and feed.http-hooks) are oriented around feed stories. They came into existence in a time when feed stories were more complex, not all transaction-driven, and a primary use case for feed.http-hooks was unsophisticated chat bots that only really wanted rendered text.
In the modern codebase, pushing these down a level so they're an extension of transaction publishing makes more sense. Particularly, we do not currently publish events which don't generate feed stories through these pipelines, but "is this interesting to humans in feed?" shouldn't be a requirement for external systems to learn about transactions. The pipeline should still have access to the feed story if one generated, but should be oriented primarily around transaction groups like other publishing steps are.
Broad motivations:
- If Nuance includes an attempt at bi-direcitonal sync for objects like GitHub Issues, we'll likely need this before then.
- feed.http-hooks is a crumbling ruin (see T5726, etc) and making it transaction oriented would partly dig us out of that pit cheaply, especially after T5873 provides better transaction access via the API.
- At least one sensible install wants to do reasonable things with Harbormaster transactions (see T10260) that may not make sense or may take a while to get to in the upstream, but currently can not because Harbormaster doesn't yet interact with Feed.