There are two kinds of agents a business actually needs. One reacts to events — a new email lands, a webhook fires, a customer hits send. The other one wakes up on a schedule and asks the same question every morning: what has changed since yesterday, and what needs to be done about it?
Most platforms ship a clean story for the first kind and a mess for the second. AACFlow treats both as first-class, and the difference between them is not philosophical — it is the difference between BullMQ and Trigger.dev v4 sitting next to each other in the worker tier.
Event-Driven Agents Are the Easy Half
Event-driven agents are well-understood. Something happens, a trigger fires, a workflow runs. AACFlow has 41 trigger sources for this — Slack messages, Gmail polls, GitHub webhooks, Stripe events, the long tail of integrations. The agent is woken by a stimulus from outside, does its work, returns to sleep.
The architecture is reactive by design. The trigger handler validates the payload, opens a ticket, and BullMQ's workflow queue picks it up. The agent never has to ask "is there anything for me?" — it is told.
Time-Driven Agents Are Where Designs Fail
The hard half is the agent that needs to wake up without an external stimulus. Daily reports. Weekly health checks. Hourly inventory reconciliation. Monthly compliance sweeps. The follow-up email three days after the customer ghosted.



