Documentation
¶
Overview ¶
Package gobpm provides Business Processes Management system which allows to load, create, save and run BPMN v.2 compliant business processes.
Package consists two sub-pacages:
- model -- for loading, creating from scratch and saving business process models.
- thresher -- for running business processes, monitoring and controlling them.
Directories
¶
| Path | Synopsis |
|---|---|
|
adapters
|
|
|
dtable
module
|
|
|
lua
module
|
|
|
postgres
module
|
|
|
sqlite
module
|
|
|
Package main provides the command-line entry point for the GoBPM application.
|
Package main provides the command-line entry point for the GoBPM application. |
|
internal
|
|
|
enginert
Package enginert provides a concrete renv.EngineRuntime assembled from the bundled default extensions.
|
Package enginert provides a concrete renv.EngineRuntime assembled from the bundled default extensions. |
|
eventproc
Package eventproc provides event processing interfaces and implementations.
|
Package eventproc provides event processing interfaces and implementations. |
|
eventproc/eventhub
Package eventhub provides event hub implementation for BPMN processes.
|
Package eventhub provides event hub implementation for BPMN processes. |
|
eventproc/eventhub/waiters
Package waiters provides event waiter implementations for different event types.
|
Package waiters provides event waiter implementations for different event types. |
|
instance
Package instance provides process instance management for BPMN execution.
|
Package instance provides process instance management for BPMN execution. |
|
instance/snapshot
Package snapshot provides process instance snapshot functionality.
|
Package snapshot provides process instance snapshot functionality. |
|
scope
Package scope provides data scoping and path management for BPMN process execution.
|
Package scope provides data scoping and path management for BPMN process execution. |
|
pkg
|
|
|
auth
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. |
|
auth/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. |
|
clock
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. |
|
clock/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. |
|
clock/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. |
|
errs
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. |
|
eventproc
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). |
|
exec
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. |
|
interactor
Package interactor provides interfaces for human interaction with BPMN processes.
|
Package interactor provides interfaces for human interaction with BPMN processes. |
|
messaging
Package messaging defines the engine's message-delivery extensions.
|
Package messaging defines the engine's message-delivery extensions. |
|
messaging/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. |
|
model/activities
Package activities provides BPMN activity implementations.
|
Package activities provides BPMN activity implementations. |
|
model/artifacts
Package artifacts provides BPMN artifact implementations.
|
Package artifacts provides BPMN artifact implementations. |
|
model/bpmncommon
Package bpmncommon provides common BPMN model elements and utilities.
|
Package bpmncommon provides common BPMN model elements and utilities. |
|
model/data
Package data provides implementation of BPMN data elements including item definitions, data associations, properties, and formal expressions.
|
Package data provides implementation of BPMN data elements including item definitions, data associations, properties, and formal expressions. |
|
model/data/goexpr
Package goexpr is a reference implementation of bpmncommon.FormalExpression interface to support go function as FormalExpression evaluation core.
|
Package goexpr is a reference implementation of bpmncommon.FormalExpression interface to support go function as FormalExpression evaluation core. |
|
model/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. |
|
model/data_objects
Package dataobjects provides BPMN data object implementations.
|
Package dataobjects provides BPMN data object implementations. |
|
model/events
Package events provides BPMN event implementations.
|
Package events provides BPMN event implementations. |
|
model/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. |
|
model/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). |
|
model/flow
Package flow provides BPMN flow elements and node definitions.
|
Package flow provides BPMN flow elements and node definitions. |
|
model/foundation
Package foundation provides base BPMN element types and interfaces.
|
Package foundation provides base BPMN element types and interfaces. |
|
model/gateways
Package gateways provides BPMN gateway implementations.
|
Package gateways provides BPMN gateway implementations. |
|
model/hinteraction
Package hinteraction provides human interaction interfaces and implementations for BPMN.
|
Package hinteraction provides human interaction interfaces and implementations for BPMN. |
|
model/hinteraction/consinp
Package consinp implements Rendered interface for user input from console.
|
Package consinp implements Rendered interface for user input from console. |
|
model/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). |
|
model/options
Package options provides configuration options for BPMN model elements.
|
Package options provides configuration options for BPMN model elements. |
|
model/process
Package process provides implementation of BPMN Process elements and their execution.
|
Package process provides implementation of BPMN Process elements and their execution. |
|
model/service
Package service provides BPMN service interfaces and implementations.
|
Package service provides BPMN service interfaces and implementations. |
|
model/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). |
|
observability
Package observability defines gobpm's structured-logging and telemetry contracts: the Logger interface (satisfied directly by *slog.Logger) and the OpenTelemetry-shaped Tracer / MetricsRecorder interfaces.
|
Package observability defines gobpm's structured-logging and telemetry contracts: the Logger interface (satisfied directly by *slog.Logger) and the OpenTelemetry-shaped Tracer / MetricsRecorder interfaces. |
|
observability/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. |
|
observability/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. |
|
observability/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). |
|
renv
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). |
|
repository
Package repository defines the Repository extension: the engine's persistence slot for Process Instance state.
|
Package repository defines the Repository extension: the engine's persistence slot for Process Instance state. |
|
repository/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. |
|
set
Package set provides generic set data structure for comparable types.
|
Package set provides generic set data structure for comparable types. |
|
tasks
Package tasks defines the engine's task-routing extensions.
|
Package tasks defines the engine's task-routing extensions. |
|
tasks/localdispatcher
Package localdispatcher provides the engine's default WorkerDispatcher: an in-process executor that runs each job's registered handler under a bounded worker pool (a counting semaphore), so it cannot spawn unbounded goroutines (the bounded-in-memory-defaults principle, ADR-002 §4.2).
|
Package localdispatcher provides the engine's default WorkerDispatcher: an in-process executor that runs each job's registered handler under a bounded worker pool (a counting semaphore), so it cannot spawn unbounded goroutines (the bounded-in-memory-defaults principle, ADR-002 §4.2). |
|
thresher
Package thresher provides the main BPMN process execution engine.
|
Package thresher provides the main BPMN process execution engine. |
|
runtime
module
|
Click to show internal directories.
Click to hide internal directories.