@secondlayer/workflows, workflow-runner, and sentries are deprecated. Push semantics for chain events live on Subscriptions. Durable execution isn't our edge — Inngest, Trigger.dev, and Cloudflare Workflows already nailed it. We deliver typed signed events into your runtime.


Mapping

workflow trigger Subscription filter on a subgraph table
workflow steps your runtime handler (inngest/trigger/cloudflare/node)
sentry Subscription with a narrow filter + your alerting code
workflow signer AI SDK calls + @secondlayer/stacks for chain ops
tx_confirmed_notify subscribe to your subgraph's transactions table

Translate

// v1 (deprecated)
import { defineWorkflow } from "@secondlayer/workflows";
export default defineWorkflow({
  trigger: { contract: "SP1...usdc", event: "transfer" },
  steps: [async ({ event }) => {
    if (event.amount < 1_000_000n) return;
    await notify(event.recipient, event.amount);
  }],
});

// v2
// 1. sl subscriptions create large-usdc --runtime node
// 2. provision the subscription:
import { on } from "@secondlayer/stacks";
await sdk.subscriptions.create({
  ...on.sip010Transfer({ subgraph: "mine", table: "transfers" }, "SP1...usdc::usdc-token"),
  filter: { amount: { gte: "1000000" } },
  name: "large-usdc",
  url: "https://my-app.com/webhook",
});
// 3. handler in your runtime verifies the standard-webhooks signature
//    and acts on the typed payload.

Removed

@secondlayer/workflows gone
@secondlayer/workflow-runner gone
@secondlayer/sentries gone
@secondlayer/signer-node gone
@secondlayer/workflows/ai gone (use AI SDK + @secondlayer/stacks tools)
sl workflows * removed CLI surface
/platform/workflows, /platform/sentries removed dashboard pages