pkg/

directory
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2026 License: LGPL-3.0

Directories

Path Synopsis
Package adhoc carries the routing contract of the Ad-Hoc Sub-Process (BPMN §13.3.5, ADR-035): the host-supplied decision that replaces sequence-flow succession inside an ad-hoc container.
Package adhoc carries the routing contract of the Ad-Hoc Sub-Process (BPMN §13.3.5, ADR-035): the host-supplied decision that replaces sequence-flow succession inside an ad-hoc container.
routers
Package routers ships ready-made Ad-Hoc Routers for the shapes that need no host decision code (ADR-035 §2.9).
Package routers ships ready-made Ad-Hoc Routers for the shapes that need no host decision code (ADR-035 §2.9).
Package auth defines the AuthorizationProvider extension: the engine's authorization slot for sensitive operations.
Package auth defines the AuthorizationProvider extension: the engine's authorization slot for sensitive operations.
allowall
Package allowall provides the engine's default AuthorizationProvider, which permits every request.
Package allowall provides the engine's default AuthorizationProvider, which permits every request.
authtest
Package authtest publishes the AuthorizationProvider conformance suite (ADR-003 §4.2): every provider — the bundled allow-all default, or an adapter over a real IAM — proves the same decision contract by calling Conformance from a one-line test.
Package authtest publishes the AuthorizationProvider conformance suite (ADR-003 §4.2): every provider — the bundled allow-all default, or an adapter over a real IAM — proves the same decision contract by calling Conformance from a one-line test.
Package clock defines the Clock extension: the engine's source of time and timer scheduling, isolated behind an interface so timer-driven behavior is testable.
Package clock defines the Clock extension: the engine's source of time and timer scheduling, isolated behind an interface so timer-driven behavior is testable.
clocktest
Package clocktest provides a controllable clock.Clock for time-dependent tests: Now is settable and After channels fire when the clock is advanced past their deadline.
Package clocktest provides a controllable clock.Clock for time-dependent tests: Now is settable and After channels fire when the clock is advanced past their deadline.
syscl
Package syscl provides the system wall-clock implementation of clock.Clock, backed by time.Now and time.After.
Package syscl provides the system wall-clock implementation of clock.Clock, backed by time.Now and time.After.
Package convert is the format-agnostic converter seam: it defines the Importer/Exporter interfaces over io.Reader/io.Writer that produce and consume *process.Process, plus a register-by-format-key registry in the image.RegisterFormat idiom.
Package convert is the format-agnostic converter seam: it defines the Importer/Exporter interfaces over io.Reader/io.Writer that produce and consume *process.Process, plus a register-by-format-key registry in the image.RegisterFormat idiom.
bpmn
Package bpmn is the batteries-included BPMN 2.0 XML converter for the github.com/dr-dobermann/gobpm/pkg/convert seam.
Package bpmn is the batteries-included BPMN 2.0 XML converter for the github.com/dr-dobermann/gobpm/pkg/convert seam.
Package datastore defines the engine-global Data Store port (BPMN §10.4.1, ADR-030 §2.5): item-aware data that outlives the Process instance and is shared across instances within the running engine.
Package datastore defines the engine-global Data Store port (BPMN §10.4.1, ADR-030 §2.5): item-aware data that outlives the Process instance and is shared across instances within the running engine.
memstore
Package memstore provides the engine's default DataStore: a non-durable, in-memory, concurrency-safe store of item-aware data by name (ADR-030 §2.5).
Package memstore provides the engine's default DataStore: a non-durable, in-memory, concurrency-safe store of item-aware data by name (ADR-030 §2.5).
Package errs provides ApplicationError definition which is used as a standard error in the gobpm library.
Package errs provides ApplicationError definition which is used as a standard error in the gobpm library.
Package eventproc holds the public event-production contracts a node implements/consumes: EventProcessor (a node that handles a fired event) and EventProducer (registers processors and propagates events).
Package eventproc holds the public event-production contracts a node implements/consumes: EventProcessor (a node that handles a fired event) and EventProducer (registers processors and propagates events).
Package exec holds the public node-execution contracts (ADR-012 v.1): the node executor a model element implements, the synchronizing-join variant, and the data-binding consumer/producer + Frame surface.
Package exec holds the public node-execution contracts (ADR-012 v.1): the node executor a model element implements, the synchronizing-join variant, and the data-binding consumer/producer + Frame surface.
Package interactor defines the human-task boundary between the engine and an embedder (ADR-020): the pluggable TaskDistributor the engine announces parked UserTasks to, the TaskInfo/TaskView it hands across that boundary, the TaskCompletion event a completed task rides back on, and the HumanTask capability a UserTask node exposes so the engine can authorize and validate it.
Package interactor defines the human-task boundary between the engine and an embedder (ADR-020): the pluggable TaskDistributor the engine announces parked UserTasks to, the TaskInfo/TaskView it hands across that boundary, the TaskCompletion event a completed task rides back on, and the HumanTask capability a UserTask node exposes so the engine can authorize and validate it.
console
Package console provides a batteries-included console TaskDistributor that drives a parked UserTask through the existing console renderer (pkg/model/hinteraction/consinp): on announcement it Takes the task, renders its form to collect the outputs, and Completes it.
Package console provides a batteries-included console TaskDistributor that drives a parked UserTask through the existing console renderer (pkg/model/hinteraction/consinp): on announcement it Takes the task, renders its form to collect the outputs, and Completes it.
Package iso8601 parses the ISO 8601 forms BPMN uses for timer event definitions: a date-time for timeDate, a duration for timeDuration, and a bounded repeating interval for timeCycle (BPMN 2.0.2 §10.5.5, Table 10.101).
Package iso8601 parses the ISO 8601 forms BPMN uses for timer event definitions: a date-time for timeDate, a duration for timeDuration, and a bounded repeating interval for timeCycle (BPMN 2.0.2 §10.5.5, Table 10.101).
Package messaging defines the engine's message-delivery extensions.
Package messaging defines the engine's message-delivery extensions.
membroker
Package membroker provides the engine's default MessageBroker: an in-memory inbox + correlation router.
Package membroker provides the engine's default MessageBroker: an in-memory inbox + correlation router.
messagingtest
Package messagingtest publishes the MessageBroker conformance suite (ADR-003 §4.2): every broker — the in-memory default and any adapter over a real queue — proves the same routing contract by calling Conformance from a one-line test.
Package messagingtest publishes the MessageBroker conformance suite (ADR-003 §4.2): every broker — the in-memory default and any adapter over a real queue — proves the same routing contract by calling Conformance from a one-line test.
model
activities
Package activities provides BPMN activity implementations.
Package activities provides BPMN activity implementations.
artifacts
Package artifacts provides BPMN artifact implementations.
Package artifacts provides BPMN artifact implementations.
bpmncommon
Package bpmncommon provides common BPMN model elements and utilities.
Package bpmncommon provides common BPMN model elements and utilities.
data
Package data provides implementations of BPMN data elements, including item definitions, data associations, properties, and formal expressions.
Package data provides implementations of BPMN data elements, including item definitions, data associations, properties, and formal expressions.
data/adapters
Package adapters lets a host's own Go struct participate directly as a navigable process value (ADR-011 v.6 §2.9.5, SRD-045): Wrap(&order) returns a live data.Record view — wrap, not convert — that every data seam (path walks, SetPath, DiffValues, conditions, mappings) consumes through the ordinary Record/Collection capabilities, with zero engine change.
Package adapters lets a host's own Go struct participate directly as a navigable process value (ADR-011 v.6 §2.9.5, SRD-045): Wrap(&order) returns a live data.Record view — wrap, not convert — that every data seam (path walks, SetPath, DiffValues, conditions, mappings) consumes through the ordinary Record/Collection capabilities, with zero engine change.
data/goexpr
Package goexpr is a reference implementation of the bpmncommon.FormalExpression interface to support Go functions as the FormalExpression evaluation core.
Package goexpr is a reference implementation of the bpmncommon.FormalExpression interface to support Go functions as the FormalExpression evaluation core.
data/values
Package values provides typed variable and array implementations for BPMN data handling.
Package values provides typed variable and array implementations for BPMN data handling.
data_objects
Package dataobjects provides BPMN data object implementations.
Package dataobjects provides BPMN data object implementations.
data_stores
Package datastores provides the BPMN Data Store Reference: the flow-scope handle to the engine-global Data Store (BPMN §10.4.1, ADR-030 §2.6).
Package datastores provides the BPMN Data Store Reference: the flow-scope handle to the engine-global Data Store (BPMN §10.4.1, ADR-030 §2.6).
dataflow
Package dataflow is the one copy path a data association runs on at execution time — for a task and for an event alike (SRD-094 FR-3).
Package dataflow is the one copy path a data association runs on at execution time — for a task and for an event alike (SRD-094 FR-3).
events
Package events provides BPMN event implementations.
Package events provides BPMN event implementations.
expression
Package expression defines the ExpressionEngine extension: the engine-level indirection through which BPMN FormalExpressions are evaluated, so the evaluation strategy (Go-native, FEEL, JUEL, …) is swappable.
Package expression defines the ExpressionEngine extension: the engine-level indirection through which BPMN FormalExpressions are evaluated, so the evaluation strategy (Go-native, FEEL, JUEL, …) is swappable.
expression/expressiontest
Package expressiontest publishes the ExpressionEngine conformance suite (ADR-003 §4.2): every engine — the Go-native default, lite, or a FEEL/JUEL adapter — proves the same contract by calling Conformance from a one-line test.
Package expressiontest publishes the ExpressionEngine conformance suite (ADR-003 §4.2): every engine — the Go-native default, lite, or a FEEL/JUEL adapter — proves the same contract by calling Conformance from a one-line test.
expression/goexpr
Package goexpr provides the Go-native default ExpressionEngine: it delegates to each FormalExpression's own Evaluate method (today's behavior).
Package goexpr provides the Go-native default ExpressionEngine: it delegates to each FormalExpression's own Evaluate method (today's behavior).
expression/lite
Package lite implements the gobpm:lite battery expression language (ADR-032 §2.3, SRD-067): a small, stdlib-only text language over process data — float64 numbers, strings, booleans, times and nil; structural paths through the engine's own resolver; short-circuit booleans; the has/len/time builtins.
Package lite implements the gobpm:lite battery expression language (ADR-032 §2.3, SRD-067): a small, stdlib-only text language over process data — float64 numbers, strings, booleans, times and nil; structural paths through the engine's own resolver; short-circuit booleans; the has/len/time builtins.
flow
Package flow provides BPMN flow elements and node definitions.
Package flow provides BPMN flow elements and node definitions.
foundation
Package foundation provides base BPMN element types and interfaces.
Package foundation provides base BPMN element types and interfaces.
gateways
Package gateways provides BPMN gateway implementations.
Package gateways provides BPMN gateway implementations.
hinteraction
Package hinteraction provides human interaction interfaces and implementations for BPMN.
Package hinteraction provides human interaction interfaces and implementations for BPMN.
hinteraction/consinp
Package consinp implements the Rendered interface for user input from the console.
Package consinp implements the Rendered interface for user input from the console.
lanes
Package lanes provides BPMN Lane and LaneSet — the engine's only **model-only** elements.
Package lanes provides BPMN Lane and LaneSet — the engine's only **model-only** elements.
msgflow
Package msgflow holds the message-flow choreography shared by the BPMN nodes that send and receive messages (ADR-014 v.1).
Package msgflow holds the message-flow choreography shared by the BPMN nodes that send and receive messages (ADR-014 v.1).
options
Package options provides configuration options for BPMN model elements.
Package options provides configuration options for BPMN model elements.
process
Package process provides an implementation of BPMN Process elements and their execution.
Package process provides an implementation of BPMN Process elements and their execution.
service
Package service provides BPMN service interfaces and implementations.
Package service provides BPMN service interfaces and implementations.
service/gooper
Package gooper provides the gobpm-native Go operation: a ServiceTask Operation implemented by an in-process Go functor that reads through a public data reader and, optionally, consumes/produces messages (ADR-011 v.5 §2.6).
Package gooper provides the gobpm-native Go operation: a ServiceTask Operation implemented by an in-process Go functor that reads through a public data reader and, optionally, consumes/produces messages (ADR-011 v.5 §2.6).
Package observability defines gobpm's structured-logging, telemetry, and observable-event contracts: the Logger interface (satisfied directly by *slog.Logger), the OpenTelemetry-shaped Tracer / MetricsRecorder interfaces, and the observation seam (ADR-013 v.2) — the canonical Fact record, the Reporter that echoes it to the operator log and fans it out to observers, the Observer a host implements (OnFact), and the optional LogRedactor / ObservationFilter visibility capabilities.
Package observability defines gobpm's structured-logging, telemetry, and observable-event contracts: the Logger interface (satisfied directly by *slog.Logger), the OpenTelemetry-shaped Tracer / MetricsRecorder interfaces, and the observation seam (ADR-013 v.2) — the canonical Fact record, the Reporter that echoes it to the operator log and fans it out to observers, the Observer a host implements (OnFact), and the optional LogRedactor / ObservationFilter visibility capabilities.
memmetrics
Package memmetrics provides the engine's default MetricsRecorder: an in-memory, queryable registry.
Package memmetrics provides the engine's default MetricsRecorder: an in-memory, queryable registry.
memtrace
Package memtrace provides an opt-in observability.Tracer that retains the most recent completed spans in a bounded in-memory ring, queryable via Spans.
Package memtrace provides an opt-in observability.Tracer that retains the most recent completed spans in a bounded in-memory ring, queryable via Spans.
noop
Package noop provides no-op observability implementations: a Tracer that creates inert spans (the engine's default tracer) and a MetricsRecorder that discards all measurements (the opt-out for metrics).
Package noop provides no-op observability implementations: a Tracer that creates inert spans (the engine's default tracer) and a MetricsRecorder that discards all measurements (the opt-out for metrics).
Package renv defines the public runtime-environment contracts: EngineRuntime — the engine/server-level set of resolved extensions (the wired services) the Thresher owns and shares with the things that run BPMN — and the per-execution RuntimeEnvironment a node executes against (ADR-012 §2.3).
Package renv defines the public runtime-environment contracts: EngineRuntime — the engine/server-level set of resolved extensions (the wired services) the Thresher owns and shares with the things that run BPMN — and the per-execution RuntimeEnvironment a node executes against (ADR-012 §2.3).
Package repository defines the Repository extension: the engine's instance-checkpoint port (ADR-033 §2.7 — ONE narrow port among peers, deliberately not the system's persistence facade; other storage-backed modules define their own ports and share the user-owned backend handle).
Package repository defines the Repository extension: the engine's instance-checkpoint port (ADR-033 §2.7 — ONE narrow port among peers, deliberately not the system's persistence facade; other storage-backed modules define their own ports and share the user-owned backend handle).
memrepo
Package memrepo provides the engine's default Repository: a non-durable, in-memory store.
Package memrepo provides the engine's default Repository: a non-durable, in-memory store.
repositorytest
Package repositorytest publishes the Repository conformance suite (ADR-002 §8.4, ADR-003 §4.2): every Repository implementation — the in-memory default and any durable adapter — proves the same contract by calling Conformance from a one-line test.
Package repositorytest publishes the Repository conformance suite (ADR-002 §8.4, ADR-003 §4.2): every Repository implementation — the in-memory default and any durable adapter — proves the same contract by calling Conformance from a one-line test.
Package rules defines the Business Rule Engine seam (ADR-027 v.1 §2.1): a pluggable engine service that evaluates a named decision against the process-data read surface.
Package rules defines the Business Rule Engine seam (ADR-027 v.1 §2.1): a pluggable engine service that evaluates a named decision against the process-data read surface.
gorules
Package gorules provides the batteries-included Business Rule Engine (ADR-027 §2.4): a bounded registry of named in-process Go decisions.
Package gorules provides the batteries-included Business Rule Engine (ADR-027 §2.4): a bounded registry of named in-process Go decisions.
Package script defines the Script Engine seam (ADR-031): pluggable script interpreters the Script Task executes its body on, routed by the standard's own scriptFormat MIME hint.
Package script defines the Script Engine seam (ADR-031): pluggable script interpreters the Script Task executes its body on, routed by the standard's own scriptFormat MIME hint.
gofunc
Package gofunc is the dependency-free Script Task engine: the BPMN script text names a Go function the host registered, and the engine calls it.
Package gofunc is the dependency-free Script Task engine: the BPMN script text names a Go function the host registered, and the engine calls it.
Package set provides a generic set data structure for comparable types.
Package set provides a generic set data structure for comparable types.
Package tasks defines the engine's external-worker execution contract: an asynchronous fetch-and-lock job queue (ADR-021 §2.4, SRD-036).
Package tasks defines the engine's external-worker execution contract: an asynchronous fetch-and-lock job queue (ADR-021 §2.4, SRD-036).
localdispatcher
Package localdispatcher provides the engine's default WorkerDispatcher (ADR-021 §2.4, SRD-036): an in-memory fetch-and-lock job store with per-job lock state and a local worker pool.
Package localdispatcher provides the engine's default WorkerDispatcher (ADR-021 §2.4, SRD-036): an in-memory fetch-and-lock job store with per-job lock state and a local worker pool.
taskstest
Package taskstest publishes the WorkerDispatcher conformance suite (ADR-003 §4.2): every dispatcher — the bundled local queue, or an adapter over Redis, SQS or a Camunda-style external-task API — proves the same fetch-and-lock contract by calling Conformance from a one-line test.
Package taskstest publishes the WorkerDispatcher conformance suite (ADR-003 §4.2): every dispatcher — the bundled local queue, or an adapter over Redis, SQS or a Camunda-style external-task API — proves the same fetch-and-lock contract by calling Conformance from a one-line test.
Package thresher provides the main BPMN process execution engine.
Package thresher provides the main BPMN process execution engine.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL