Siren

DistributionHeartbeatInitialized

The scheduler trigger that kicks off distribution processing. Carries no data.

Last updated: April 8, 2026

DistributionHeartbeatInitialized

DistributionHeartbeatInitialized is the signal that tells the distribution system to wake up and check for work. It carries no data of its own. When the platform’s scheduler fires this event, the distribution system queries for any distributions whose trigger date has passed and begins processing them.

The event ID is distribution_heartbeat_initialized, and its fully qualified class is Siren\Distributions\Core\Events\DistributionHeartbeatInitialized.

Why is this a separate event?

Distributions are scheduled rewards that accumulate over time, so they need a periodic trigger to evaluate whether a distribution period has elapsed. Rather than coupling that trigger to a specific scheduling mechanism, the system defines it as a plain event. WordPress fires it from a cron hook. A custom platform could fire it on any cadence it wants. The distribution logic downstream does not care where the signal came from.

What happens when it fires?

When a listener receives this event, it queries the distributions table for any distributions whose next trigger date is in the past. For each one it finds, it fires a DistributionCompleted event that carries the distribution model and begins the actual calculation of collaborator shares.

Because the event carries no payload, there is nothing to inspect or modify in a listener. Its purpose is purely as a scheduling entry point.

use Siren\Distributions\Core\Events\DistributionHeartbeatInitialized;

// Firing the heartbeat from a custom scheduling mechanism
$dispatcher->dispatch(new DistributionHeartbeatInitialized());

For the full lifecycle of distribution events and how they connect to the fulfillment pipeline, see the Distribution Events overview.