Terminology
Here’s a few naming differences to keep in mind- Task - In Compose a “task” is a typescript file with your code logic, it can import from other files and libraries and it must have a single main function. This is effectively the equivalent of a “function” in W3F terms.
- Trigger - In Compose a “trigger” encompasses the concept of both “triggers” and “tasks” in W3F.
Configuration
Compose apps are completely configured within your code repository; all configuration for Compose apps is done in the Manifest yaml file. Compose apps are deployed with the CLI and the manifest is responsible for provisioning infra and dependencies.Triggers
Compose has similar triggering options to W3F with a few differences:- Compose doesn’t differentiate between cron and time intervals, Compose just uses cron expressions for time-based triggering.
- Compose has HTTP triggers allowing your application logic to trigger tasks and send payloads over HTTP with optional bearer token authentication.
- Like W3F, Compose tasks can be triggered with onchain events. You declare them directly in your manifest with an
onchain_eventtrigger (network, contract address, event signatures) — no separate pipeline to configure. See Task triggers. - For more complex event-driven flows than a single contract’s events can express, you can build a Turbo pipeline with a webhook sink pointed at a Compose HTTP trigger.
- Compose doesn’t support per-block triggers out of the box. You can recreate this with a Turbo pipeline (webhook sink) that indexes every block and posts to an HTTP-triggered task.