Directories
¶
| Path | Synopsis |
|---|---|
|
Package client is the producer side: Enqueue tasks and await responses.
|
Package client is the producer side: Enqueue tasks and await responses. |
|
cmd
|
|
|
demo
command
cmd/demo: single-process end-to-end round-trip.
|
cmd/demo: single-process end-to-end round-trip. |
|
ebctl
command
Command ebctl is the operator CLI for ebind: inspect and manipulate DAGs, streams, consumers, and the DLQ of a running NATS JetStream deployment.
|
Command ebctl is the operator CLI for ebind: inspect and manipulate DAGs, streams, consumers, and the DLQ of a running NATS JetStream deployment. |
|
ebctl-playground
command
Command ebctl-playground runs a long-lived ebind deployment that exercises every code path ebctl cares about: parallel DAG branches, retries, DLQ entries, cascade-skips, cancellations.
|
Command ebctl-playground runs a long-lived ebind deployment that exercises every code path ebctl cares about: parallel DAG branches, retries, DLQ entries, cascade-skips, cancellations. |
|
ebctl/internal/cli
Package cli holds the shared CLI context, global flags, and wiring helpers used by every ebctl subcommand.
|
Package cli holds the shared CLI context, global flags, and wiring helpers used by every ebctl subcommand. |
|
ebctl/internal/commands/dag
Package dag implements `ebctl dag ...` subcommands.
|
Package dag implements `ebctl dag ...` subcommands. |
|
ebctl/internal/commands/dlq
Package dlq implements `ebctl dlq ...` subcommands.
|
Package dlq implements `ebctl dlq ...` subcommands. |
|
ebctl/internal/commands/stream
Package stream implements `ebctl stream ...` and `ebctl consumer ...`.
|
Package stream implements `ebctl stream ...` and `ebctl consumer ...`. |
|
ebctl/internal/commands/version
Package version prints the ebctl build metadata.
|
Package version prints the ebctl build metadata. |
|
ebctl/internal/format
Package format is the tiny output abstraction used by ebctl commands.
|
Package format is the tiny output abstraction used by ebctl commands. |
|
Package dlq publishes poison tasks (those that exhausted MaxDeliver or failed non-retryably) to the DLQ stream for operator review.
|
Package dlq publishes poison tasks (those that exhausted MaxDeliver or failed non-retryably) to the DLQ stream for operator review. |
|
Package embed starts and supervises NATS JetStream servers in-process.
|
Package embed starts and supervises NATS JetStream servers in-process. |
|
examples
|
|
|
01-basic
command
Basic ebind usage: register one handler, enqueue a task, await the typed result.
|
Basic ebind usage: register one handler, enqueue a task, await the typed result. |
|
02-retry-policy
command
Retry policy: a task with a RetryPolicy attached to it.
|
Retry policy: a task with a RetryPolicy attached to it. |
|
03-fire-and-forget
command
Fire-and-forget: EnqueueAsync returns as soon as the task is published.
|
Fire-and-forget: EnqueueAsync returns as soon as the task is published. |
|
04-cluster-ha
command
HA cluster: start 3 NATS JetStream nodes in-process with replicated streams.
|
HA cluster: start 3 NATS JetStream nodes in-process with replicated streams. |
|
05-middleware
command
Custom middleware: a timing wrapper that logs every handler's duration.
|
Custom middleware: a timing wrapper that logs every handler's duration. |
|
06-workflow-linear
command
Linear DAG workflow: A → B → C. Each step's output feeds the next.
|
Linear DAG workflow: A → B → C. Each step's output feeds the next. |
|
07-workflow-fanout
command
Fan-out / fan-in: kick off two independent steps in parallel, then combine.
|
Fan-out / fan-in: kick off two independent steps in parallel, then combine. |
|
08-workflow-optional
command
Optional steps + RefOrDefault: a step is marked Optional so its failure doesn't fail the DAG.
|
Optional steps + RefOrDefault: a step is marked Optional so its failure doesn't fail the DAG. |
|
09-workflow-dynamic
command
Dynamic DAG: a handler inspects its input and adds more steps to the currently-running DAG via workflow.FromContext(ctx).Step(...).
|
Dynamic DAG: a handler inspects its input and adds more steps to the currently-running DAG via workflow.FromContext(ctx).Step(...). |
|
10-workflow-temporal-deps
command
Time-only dependencies: After() and AfterAny().
|
Time-only dependencies: After() and AfterAny(). |
|
11-workflow-resume
command
Cross-instance resume: a second instance picks up waiting on a DAG that a first instance submitted and then "crashed" (the example simulates this by exiting).
|
Cross-instance resume: a second instance picks up waiting on a DAG that a first instance submitted and then "crashed" (the example simulates this by exiting). |
|
12-workflow-placement
command
|
|
|
13-workflow-cancel
command
|
|
|
internal
|
|
|
testutil
Package testutil provides test helpers: embedded NATS + streams + worker.
|
Package testutil provides test helpers: embedded NATS + streams + worker. |
|
Package stream creates and manages ebind's JetStream streams.
|
Package stream creates and manages ebind's JetStream streams. |
|
Package worker consumes tasks from the TASKS stream, dispatches via the registry, and publishes responses to each task's ReplyTo subject.
|
Package worker consumes tasks from the TASKS stream, dispatches via the registry, and publishes responses to each task's ReplyTo subject. |
Click to show internal directories.
Click to hide internal directories.