In Eventide, a consumer is a long-running process (analogous to a Sidekiq worker) that continually reads messages from a single category (stream prefix), applies business logic by routing each message to an appropriate handler, and can publish new events or issue new commands. Consumers can be triggered by either commands or events, which allows any workflow to be modeled as a chain of reactions (e.g. a 'finalize order' command yields an 'order finalized' event, which triggers invoicing and shipping consumers).