atlas

package module
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2026 License: AGPL-3.0 Imports: 0 Imported by: 0

README

Atlas

A durable, high-throughput BPMN 2.x workflow engine in a single Go binary.

Design processes in the browser, run them on an event-sourced engine, watch every token live, and replay any instance step by step — with no database, no message broker, and no runtime dependencies.

CI Latest release Go 1.26

atlas.blumer.cloud

Atlas is named after the Titan who bears an immense load without ever letting it drop. That's exactly what it does: it carries process instances, batch after batch, and never drops a token.

Developer preview (0.x). Atlas already runs a broad slice of BPMN 2.x durably on a single node, but it is not ready for production use — the pre-1.0 API and on-disk formats are unstable and changing fast. See the changelog for what's in each release and the roadmap for what's next.


Install

Atlas is a single self-contained binary — engine, HTTP API, and the whole web UI in one file. Grab it from the releases, verify it against SHA256SUMS, and run it:

tar -xzf atlas_0.6.0_linux_amd64.tar.gz
./atlas_0.6.0_linux_amd64/atlas serve --data-dir ./atlas-data
# open http://127.0.0.1:8080/ and sign in

That's the whole setup. No SQL schema to migrate, no broker to provision, no sidecar.

A login is required by default. On the first start Atlas creates one administrator and logs a generated password once — copy it out of the startup output, or set ATLAS_ADMIN_PASSWORD beforehand to choose your own. To poke around without any of that, --auth=false runs the server open; it says so loudly at startup, and it is for a laptop, not for anything reachable by anyone else.

Installation guide — the step-by-step version: Linux with a systemd unit, Windows Server, macOS, turning on authentication, TLS, backups, upgrades, and the full flag and environment-variable reference. For containers and Kubernetes see Deploying Atlas.

Highlights

  • One binary. Engine, REST API, OpenAPI explorer, Modeler, Operations, Tasks app and MCP adapter ship in one file. Pure Go, no CGO, embedded state store.
  • Durable by construction. Every state transition is an append-only event. Nothing becomes visible before it is on disk, and crash recovery is a replay of the log.
  • Compiled, not interpreted. BPMN is compiled once at deploy time into a flat, integer-indexed graph — no XML parsing or string lookups on the hot path.
  • Model in the browser. A full BPMN modeler with a properties panel, problems panel, auto-layout, version history, live collaborative editing, and a token simulation you can play without deploying.
  • See every token. A live view of all running instances on the diagram, plus a step-by-step replay of any single instance with per-step variable snapshots.
  • Human work included. User tasks with real forms, claim/assign, candidate groups, and public start links — a Tasks app, not just an API.
  • Decisions as tables. DMN business rule tasks with an embedded decision-table editor, and every evaluation recorded with its inputs, outputs and rule trace.
  • Made for AI agents. atlas mcp exposes 65 Model Context Protocol tools, so an agent can author, deploy, run and inspect processes over the same API you do.

Take the tour

Design it

(The screenshot at the top of this page.) The Modeler is the standard bpmn-js toolkit embedded in the binary (ADR-0011) with a full properties panel (ADR-0025), a versioned validation ("Problems") panel that checks the model against the engine that will actually run it (ADR-0026), server-side auto-layout (ADR-0124), diagram version history (ADR-0031) and live collaborative sessions (ADR-0140). Deploy & run takes a model from the canvas to a running instance in one click, and a browser-side token simulation (ADR-0030) lets you play a model through before it is deployed at all.

Run it, and watch it

The Operations live view puts every instance of a process version on one diagram at once: green marks a live token, dashed marks a path already taken, and the badge on each element counts the tokens sitting there. The panel on the right lists each instance with its variables, and links straight to the waiting task.

Replay any instance, step by step

Because state is a fold over an event log, an instance can be walked one step at a time after the fact (ADR-0046, ADR-0065). Scrub the timeline and the tokens move on the diagram; the Variables tab shows the values as of that step (ADR-0048), and the Decisions tab shows which DMN rules fired. This is the answer to "why did this instance do that?" — not a guess reconstructed from logs, but the recorded facts.

Give people real work

User tasks carry forms built in the browser (ADR-0028), with the modeler's documentation shown to the assignee as the work instruction. Tasks can be claimed, assigned to a person or a candidate group (ADR-0042, ADR-0045), scheduled with a due date and priority (ADR-0091), and started from a public link by someone with no account at all (ADR-0029).

Keep the rules where the business can reach them
The embedded DMN editor showing a decision table with a Unique hit policy and four rules

Business rule tasks evaluate DMN decisions (ADR-0014), authored in an embedded DMN editor (ADR-0062). Grading thresholds, approval limits and routing rules live in a table a domain expert can change — no redeploy of the process, and every evaluation is recorded with its inputs, outputs and the rule that hit (ADR-0066).

Why another workflow engine?

Most BPMN engines spend their time interpreting XML at runtime and writing process state to a SQL database one transaction at a time. Both are throughput killers. Atlas takes a different path, borrowed from the design lineage of log-structured, event-sourced systems:

  • Compile, don't interpret. BPMN models are compiled once at deploy time into a flat, integer-indexed execution graph. At runtime there are no string lookups, no XML parsing, no map access on the hot path — just pointer arithmetic over cache-friendly slices.
  • Event sourcing over state mutation. State is never written in place. Every state transition is an append-only event in a write-ahead log. The live state is a materialization of that log, kept in an embedded key-value store.
  • Group commit. Many events are made durable with a single fsync. One fsync per event caps you at a few thousand per second; one fsync per thousand events lifts that ceiling by orders of magnitude.
  • Single writer per partition. Each partition is driven by one goroutine processing commands sequentially — no locks, no mutex contention, cache-friendly state access, and trivially deterministic recovery via log replay. Scale horizontally by adding partitions, not threads.

Numbers, not adjectives: the benchmark harness and its published baseline measure throughput, latency distribution and recovery on a named machine at a named commit — including how much of the durable path is simply disk fsync.

Design at a glance

Command → [Single-writer Processor] → State mutation (in-memory tx) + Events
                                              │
                                    Batched WAL append + one fsync
                                              │
                                    State commit → followup commands → side effects
                                              │
                                    (Recovery: replay events → state)

The three core pillars:

  1. The graph compiler turns hierarchical BPMN XML into immutable, integer-indexed slices — nodes, flows, and scopes — with interned strings and pre-compiled expressions. Expensive once, cheap a million times.
  2. The processor moves tokens through that graph as a deterministic fold over an event log. A single batch loop collects commands, processes them purely in-memory against a transaction, makes the whole batch durable with one fsync, then runs visible side effects.
  3. The data model makes every step a keyed record with a (ValueType, Intent) discriminator. The same applyToState function runs live and during recovery, so the log and the state can never diverge.

What it runs

BPMN 2.x. All four gateway kinds (exclusive, parallel, inclusive, event-based). Embedded, event, transaction, ad-hoc and call-activity subprocesses. Boundary events — timer, message, signal, error, escalation, conditional, compensation — interrupting and non-interrupting. Start events from none, message, timer and signal triggers. Multi-instance (parallel and sequential) and standard-loop activities. Link, escalation and terminate events. Data objects with input/output associations, lanes, collaborations with pools and message flows, and compensation.

Coverage is a checkable claim, not a vibe: the conformance suite registers every execution feature against the recognized workflow control-flow patterns and reports the gaps in COVERAGE.md — currently 31 features and 9 patterns, with none uncovered. Five independent oracles back it, including replay equivalence on every model and an opt-in differential test against a second, unrelated engine.

FEEL everywhere. Gateway conditions, script tasks, timer schedules, multi-instance cardinality and completion conditions, and I/O mappings are compiled at deploy time and evaluated in-engine (ADR-0008, ADR-0015).

Work that leaves the engine. Job workers over the HTTP API, polyglot script tasks (JavaScript, Python, PowerShell) run by shelling out to the interpreter (ADR-0047), a service-task catalog of Worker Types (ADR-0067, ADR-0203) covering REST, mail, SharePoint, BMC Remedy, Jira and web scraping, and an engine-internal encrypted secret vault so credentials never sit in the model (ADR-0069). Service tasks can also be marked mockup (ADR-0120) — the engine simulates the call, with a scripted answer, a random duration and a failure rate — so a process runs end to end before any of its integrations exist.

Built to be driven by an agent

atlas mcp --server http://localhost:8080          # --token, or ATLAS_TOKEN, when the server requires a login

Atlas ships a Model Context Protocol adapter over its own HTTP API (ADR-0016): 65 tools covering projects and drafts, BPMN and DMN deployment, instance lifecycle, task claiming and completion, incident resolution, and runtime inspection. An agent can author a process, deploy it, start it, work its user tasks and read back the timeline — through exactly the surface a human uses. The Modeler also carries an in-canvas AI copilot (ADR-0032), and processes can call an agent as a task (ADR-0117).

Running it for real

Backup and restore, including whole-instance snapshots (ADR-0107, ADR-0109) · recovery checkpoints and WAL compaction so a restart doesn't replay from genesis (ADR-0131) · incidents with resolution and retries (ADR-0061, ADR-0135) · Prometheus metrics at /metrics (ADR-0142) · an OpenAPI spec with an embedded API explorer at /api/docs (ADR-0043) · event export to OpenSearch and history retention (ADR-0114, ADR-0115) · authentication, users and per-project membership (ADR-0044) · and process applications — versioned, git-backed, deployable units that can be promoted to another server (ADR-0128, ADR-0134).

Try the examples

examples/ holds runnable models that double as showcases and as deterministic test scenarios — a self-completing order-fulfillment flow that exercises all three gateway kinds, an order-to-cash lifecycle that parks on human approval, CSV batch validation driven by a DMN table, an exam with a hard timer deadline, and a travel booking whose required forms are chosen by a decision table. examples/order-to-cash-app.html is a self-contained page you can open in a browser with no server at all. Every one of them is described — in German and English, in business terms and technically — in the handbook's Beispiele chapter (/handbuch.html#beispiele on a running server), which renders each diagram and installs the example into your own instance in one click; the per-worker commissioning runbooks sit beside it under #runbooks.

Documentation

Working on this with an AI coding agent? Start at AGENTS.md (Claude Code: CLAUDE.md). It carries the invariants, the exact build/test commands, and how to approach a task.

Goals

  • Durable execution that survives crashes and runs long-lived processes (timers, message events, multi-week instances)
  • Full BPMN 2.0 coverage including subprocesses, boundary events, and event subprocesses
  • High throughput — many instances per second per partition
  • Pure Go, no CGO (embedded LSM-tree state store, e.g. Pebble)

Non-goals (for now)

  • A bespoke graphical modeler — Atlas ships a browser viewer/editor by embedding the standard bpmn-js toolkit (ADR-0011), rather than reimplementing BPMN rendering from scratch
  • A full-stack, batteries-included server beyond the single self-contained binary — the engine core stays a library first, embedded by the server

License

GNU Affero General Public License v3.0 only (AGPL-3.0-only). Strong copyleft with a network-use clause: anyone who runs a modified Atlas as a network service must make their modified source available to its users. Contributions are accepted under the same license (see CONTRIBUTING.md).


Built by someone who appreciates a good atlas.

Documentation

Overview

Package atlas is a blazing-fast, durable BPMN 2.x workflow engine.

Atlas compiles BPMN models into a flat, integer-indexed execution graph, records every state transition as an append-only event in a write-ahead log, and materializes live state in an embedded key-value store. See the documents in docs/ for the architecture, design decisions, and roadmap.

This is the module root. Implementation packages live in subdirectories and will be added as the project develops; see ROADMAP.md for status.

Directories

Path Synopsis
api
Package api is the single-binary server surface for Atlas: it embeds one engine.Processor behind an HTTP API and serves an embedded web UI, so a single self-contained binary can deploy BPMN models, run instances, and (as the UI grows) view them in a browser.
Package api is the single-binary server surface for Atlas: it embeds one engine.Processor behind an HTTP API and serves an embedded web UI, so a single self-contained binary can deploy BPMN models, run instances, and (as the UI grows) view them in a browser.
collab
Package collab implements the first slice of ADR-0140: live collaborative modeling sessions.
Package collab implements the first slice of ADR-0140: live collaborative modeling sessions.
formgen
Package formgen generates a form from a description and from the process it belongs to (ADR-0260).
Package formgen generates a form from a description and from the process it belongs to (ADR-0260).
httpapi
Package httpapi holds the primitives every Atlas HTTP handler is written against: how a response is written, who the caller is, and where the request came from.
Package httpapi holds the primitives every Atlas HTTP handler is written against: how a response is written, who the caller is, and where the request came from.
infomodel
Package infomodel holds Atlas's process information model: a UML class-diagram subset that gives BPMN's data objects a type they can share across processes (ADR-0230).
Package infomodel holds Atlas's process information model: a UML class-diagram subset that gives BPMN's data objects a type they can share across processes (ADR-0230).
layout
Package layout generates BPMN diagram interchange (BPMN-DI) for models that carry none, and regenerates it for models whose layout a user has tangled.
Package layout generates BPMN diagram interchange (BPMN-DI) for models that carry none, and regenerates it for models whose layout a user has tangled.
panorama
Package panorama owns Atlas's design-time ArchiMate models (ADR-0189).
Package panorama owns Atlas's design-time ArchiMate models (ADR-0189).
playground
Package playground serves the Modeler's Playground area: a caller opens a session on a model, feeds it cases, and drives it — free-running, or one occurrence at a time with a person answering the human tasks.
Package playground serves the Modeler's Playground area: a caller opens a session on a model, feeds it cases, and drives it — free-running, or one occurrence at a time with a person answering the human tasks.
processdoc
Package processdoc serves process documentation (ADR-0143): a published BPMN process as a stored PDF plus the element prose it describes, its version history, and the revocable public link a reader without an account follows.
Package processdoc serves process documentation (ADR-0143): a published BPMN process as a stored PDF plus the element prose it describes, its version history, and the revocable public link a reader without an account follows.
runloop
Package runloop carries Atlas's single-writer boundary for design-time and API state.
Package runloop carries Atlas's single-writer boundary for design-time and API state.
sidecar
Package sidecar is the durable-file discipline Atlas's design-time stores share.
Package sidecar is the durable-file discipline Atlas's design-time stores share.
taskfolder
Package taskfolder serves the Tasks app's folders: the saved filters a person builds for themselves out of listboxes, so a recurring question ("what is open on customer enquiries?") becomes a place in the sidebar instead of something retyped into the search box every morning (ADR-0268).
Package taskfolder serves the Tasks app's folders: the saved filters a person builds for themselves out of listboxes, so a recurring question ("what is open on customer enquiries?") becomes a place in the sidebar instead of something retyped into the search box every morning (ADR-0268).
token
Package token mints and validates Atlas's opaque share tokens.
Package token mints and validates Atlas's opaque share tokens.
vault
Package vault is Atlas's engine-internal encrypted secret store: worker credentials sealed at rest with AES-256-GCM under a master key that never leaves the operator's control (ADR-0069), on by default with a generated key file when no operator key is supplied (ADR-0070).
Package vault is Atlas's engine-internal encrypted secret store: worker credentials sealed at rest with AES-256-GCM under a master key that never leaves the operator's control (ADR-0069), on by default with a generated key file when no operator key is supplied (ADR-0070).
Package benchmarks holds Atlas's reproducible performance harness (work programme B of the v0.2.0 "Proof of Reliability & Performance" initiative).
Package benchmarks holds Atlas's reproducible performance harness (work programme B of the v0.2.0 "Proof of Reliability & Performance" initiative).
Package checkpoint holds the on-disk format primitives for engine recovery checkpoints (ADR-0133).
Package checkpoint holds the on-disk format primitives for engine recovery checkpoints (ADR-0133).
cmd
atlas command
Command atlas is the single-binary Atlas server: one self-contained process that embeds the engine, exposes an HTTP API, and serves the web UI.
Command atlas is the single-binary Atlas server: one self-contained process that embeds the engine, exposes an HTTP API, and serves the web UI.
Package compiler turns a BPMN model into an immutable, integer-indexed CompiledProcess (ADR-0004).
Package compiler turns a BPMN model into an immutable, integer-indexed CompiledProcess (ADR-0004).
Package conformance is Atlas's curated BPMN conformance suite: a collection of small, deterministic process models plus the oracles that prove the engine executes them correctly.
Package conformance is Atlas's curated BPMN conformance suite: a collection of small, deterministic process models plus the oracles that prove the engine executes them correctly.
differential
Package differential is the conformance suite's cross-engine oracle: it runs the same process on Atlas and on an independent reference BPMN engine and compares a normalized outcome, so a control-flow bug shows up as disagreement with a second implementation — the one oracle the suite's other checks (golden, replay, invariants, metamorphic) can't provide, since they all trust Atlas alone.
Package differential is the conformance suite's cross-engine oracle: it runs the same process on Atlas and on an independent reference BPMN engine and compares a normalized outcome, so a control-flow bug shows up as disagreement with a second implementation — the one oracle the suite's other checks (golden, replay, invariants, metamorphic) can't provide, since they all trust Atlas alone.
connector
ad
Package ad integrates Active Directory as a service-task Worker Type: a BPMN AD task performs an AD-specific provisioning operation — create a user, set a password, enable or disable an account, or add/remove a group member — against a model-authored server through the job path (ADR-0166), the same seam the ldap package uses (ADR-0154).
Package ad integrates Active Directory as a service-task Worker Type: a BPMN AD task performs an AD-specific provisioning operation — create a user, set a password, enable or disable an account, or add/remove a group member — against a model-authored server through the job path (ADR-0166), the same seam the ldap package uses (ADR-0154).
agent
Package agent is the Worker Type behind an agent-driven ad-hoc subprocess (ADR-0253): it works the round job the container parks on, asks a model which of the container's tools to run next, and hands that choice back as the job's completion.
Package agent is the Worker Type behind an agent-driven ad-hoc subprocess (ADR-0253): it works the round job the container parks on, asks a model which of the container's tools to run next, and hands that choice back as the job's completion.
clientreg
Package clientreg is the client registry every Worker Type shares: a name → client map that a worker resolves a model's worker reference through, plus the part that is not a map — *why* a worker an operator did configure is missing from it.
Package clientreg is the client registry every Worker Type shares: a name → client map that a worker resolves a model's worker reference through, plus the part that is not a map — *why* a worker an operator did configure is missing from it.
clio
Package clio integrates a clio event store as a server-registered Atlas worker: a BPMN clio "write-events" task appends an event to a configured clio instance through the job path (ADR-0036), mirroring how the dmn package delegates a decision to temis (ADR-0014).
Package clio integrates a clio event store as a server-registered Atlas worker: a BPMN clio "write-events" task appends an event to a configured clio instance through the job path (ADR-0036), mirroring how the dmn package delegates a decision to temis (ADR-0014).
csvimport
Package csvimport is Atlas's in-process worker for the CSV-to-JSON Worker Type task (ADR-0139), and the CSV parser the API's upload-validation endpoint shares with it (ADR-0084).
Package csvimport is Atlas's in-process worker for the CSV-to-JSON Worker Type task (ADR-0139), and the CSV parser the API's upload-validation endpoint shares with it (ADR-0084).
discord
Package discord integrates Discord as a server-registered Atlas worker: a BPMN Discord task performs one chat operation — send a message, edit one, delete one, read one, list a channel's messages, or open a thread — against a configured Discord Worker via the job path (ADR-0258).
Package discord integrates Discord as a server-registered Atlas worker: a BPMN Discord task performs one chat operation — send a message, edit one, delete one, read one, list a channel's messages, or open a thread — against a configured Discord Worker via the job path (ADR-0258).
entra
Package entra provisions identities in Microsoft Entra ID (formerly Azure AD) through the Microsoft Graph API on behalf of a BPMN service task (ADR-0172).
Package entra provisions identities in Microsoft Entra ID (formerly Azure AD) through the Microsoft Graph API on behalf of a BPMN service task (ADR-0172).
envname
Package envname turns a worker name or a secret reference into the environment variable it is read from.
Package envname turns a worker name or a secret reference into the environment variable it is read from.
googlesheets
Package googlesheets integrates Google Sheets as a Worker Type (ADR-0203): a BPMN service task performs one spreadsheet operation — create a spreadsheet, add a sheet to one, read a range, write a range, append rows, clear a range, delete a sheet, or trash the whole file — against a Worker an operator configured, via the job path (ADR-0235).
Package googlesheets integrates Google Sheets as a Worker Type (ADR-0203): a BPMN service task performs one spreadsheet operation — create a spreadsheet, add a sheet to one, read a range, write a range, append rows, clear a range, delete a sheet, or trash the whole file — against a Worker an operator configured, via the job path (ADR-0235).
jira
Package jira integrates Atlassian Jira as a server-registered Atlas worker: a BPMN Jira task performs one issue-tracker operation — create an issue, read one, update it, move it through its workflow, comment on it, assign it, search for issues, or look an account up — against a configured Jira instance via the job path (ADR-0201).
Package jira integrates Atlassian Jira as a server-registered Atlas worker: a BPMN Jira task performs one issue-tracker operation — create an issue, read one, update it, move it through its workflow, comment on it, assign it, search for issues, or look an account up — against a configured Jira instance via the job path (ADR-0201).
ldap
Package ldap integrates a generic LDAP directory as a service-task Worker Type: a BPMN LDAP task performs a directory operation — search an entry, add / modify / delete an entry, or set an entry's password — against a model-authored server through the job path (ADR-0154), the same seam the rest and scim packages use for HTTP (ADR-0067/0151).
Package ldap integrates a generic LDAP directory as a service-task Worker Type: a BPMN LDAP task performs a directory operation — search an entry, add / modify / delete an entry, or set an entry's password — against a model-authored server through the job path (ADR-0154), the same seam the rest and scim packages use for HTTP (ADR-0067/0151).
ldif
Package ldif reads and writes directory entries held in a file — LDIF (RFC 2849) and DSML v1 (ADR-0171).
Package ldif reads and writes directory entries held in a file — LDIF (RFC 2849) and DSML v1 (ADR-0171).
mail
Package mail integrates an outbound e-mail provider as a server-registered Atlas worker: a BPMN mail task sends a model-authored message through a configured provider via the job path (ADR-0079), mirroring how the clio package delegates an append to a registry-managed endpoint (ADR-0036).
Package mail integrates an outbound e-mail provider as a server-registered Atlas worker: a BPMN mail task sends a model-authored message through a configured provider via the job path (ADR-0079), mirroring how the clio package delegates an append to a registry-managed endpoint (ADR-0036).
nettimeout
Package nettimeout defines the outbound-call budget every Atlas worker shares.
Package nettimeout defines the outbound-call budget every Atlas worker shares.
oauth2
Package oauth2 is the OAuth2 token machinery every Atlas worker that speaks to a token-protected API shares: an expiry-aware cache, the token-endpoint exchange, and the two grants that are not specific to any one vendor.
Package oauth2 is the OAuth2 token machinery every Atlas worker that speaks to a token-protected API shares: an expiry-aware cache, the token-endpoint exchange, and the two grants that are not specific to any one vendor.
remedy
Package remedy integrates BMC Remedy (BMC Helix ITSM / the AR System) as a server-registered Atlas worker: a BPMN Remedy task creates an entry (e.g.
Package remedy integrates BMC Remedy (BMC Helix ITSM / the AR System) as a server-registered Atlas worker: a BPMN Remedy task creates an entry (e.g.
remedy/mock
Package remedymock is an in-memory stand-in for a BMC Remedy AR System REST API, so the Remedy worker (ADR-0106) can be exercised end to end without a real Remedy / Helix ITSM instance.
Package remedymock is an in-memory stand-in for a BMC Remedy AR System REST API, so the Remedy worker (ADR-0106) can be exercised end to end without a real Remedy / Helix ITSM instance.
rest
Package rest integrates an external HTTP-REST API as a service-task Worker Type: a BPMN REST task calls a model-authored endpoint through the job path (ADR-0036/0067), mirroring how the dmn package delegates a decision to temis (ADR-0014).
Package rest integrates an external HTTP-REST API as a service-task Worker Type: a BPMN REST task calls a model-authored endpoint through the job path (ADR-0036/0067), mirroring how the dmn package delegates a decision to temis (ADR-0014).
rest/openapimock
Package openapimock serves a mock REST API from an OpenAPI 3 document, so a process with a REST task (ADR-0067) can be run end to end before the API it calls exists — or without pointing a draft at the real one (ADR-0217).
Package openapimock serves a mock REST API from an OpenAPI 3 document, so a process with a REST task (ADR-0067) can be run end to end before the API it calls exists — or without pointing a draft at the real one (ADR-0217).
scim
Package scim integrates a SCIM 2.0 service provider as a service-task Worker Type (RFC 7643/7644): a BPMN SCIM task performs a resource operation — create, get, replace, patch, delete, or search a User/Group — against a model-authored provider endpoint through the job path (ADR-0153), the same seam the rest package uses for a generic HTTP call (ADR-0067).
Package scim integrates a SCIM 2.0 service provider as a service-task Worker Type (RFC 7643/7644): a BPMN SCIM task performs a resource operation — create, get, replace, patch, delete, or search a User/Group — against a model-authored provider endpoint through the job path (ADR-0153), the same seam the rest package uses for a generic HTTP call (ADR-0067).
script
Package script is Atlas's in-process worker for polyglot script tasks (PowerShell, Python, JavaScript — ADR-0047).
Package script is Atlas's in-process worker for polyglot script tasks (PowerShell, Python, JavaScript — ADR-0047).
sharepoint
Package sharepoint integrates Microsoft SharePoint as a server-registered Atlas worker: a BPMN SharePoint task creates a list item in a model-authored site and list through a configured provider via the job path (ADR-0141), mirroring how the mail package delegates a send to a registry-managed provider (ADR-0079).
Package sharepoint integrates Microsoft SharePoint as a server-registered Atlas worker: a BPMN SharePoint task creates a list item in a model-authored site and list through a configured provider via the job path (ADR-0141), mirroring how the mail package delegates a send to a registry-managed provider (ADR-0079).
soap
Package soap integrates a SOAP / Web Services (WSDL) endpoint as a service-task worker: a BPMN SOAP task invokes an operation — reading identities (import) or provisioning accounts (outbound) — against a model-authored web-service endpoint through the job path (ADR-0165), the same seam the rest package uses for a generic HTTP call (ADR-0067).
Package soap integrates a SOAP / Web Services (WSDL) endpoint as a service-task worker: a BPMN SOAP task invokes an operation — reading identities (import) or provisioning accounts (outbound) — against a model-authored web-service endpoint through the job path (ADR-0165), the same seam the rest package uses for a generic HTTP call (ADR-0067).
sqldb
Package sqldb runs one SQL statement against a relational database on behalf of a BPMN service task — for Microsoft SQL Server, MariaDB, or PostgreSQL (ADR-0173).
Package sqldb runs one SQL statement against a relational database on behalf of a BPMN service task — for Microsoft SQL Server, MariaDB, or PostgreSQL (ADR-0173).
temis
Package temis integrates a central temis decision service as a server-registered Atlas worker: a business rule task marked <atlas:temisConnector> delegates its decision to a configured temis instance through the job path (ADR-0050), instead of the embedded temis library that evaluates a local decision (ADR-0014).
Package temis integrates a central temis decision service as a server-registered Atlas worker: a business rule task marked <atlas:temisConnector> delegates its decision to a configured temis instance through the job path (ADR-0050), instead of the embedded temis library that evaluates a local decision (ADR-0014).
webscrape
Package webscrape integrates web scraping as a service-task worker: a BPMN web-scraping task fetches a model-authored URL and extracts the elements matching a CSS selector through the job path (ADR-0118), mirroring how the rest package calls a model-authored HTTP endpoint (ADR-0067).
Package webscrape integrates web scraping as a service-task worker: a BPMN web-scraping task fetches a model-authored URL and extracts the elements matching a CSS selector through the job path (ADR-0118), mirroring how the rest package calls a model-authored HTTP endpoint (ADR-0067).
Package dmn integrates the temis DMN decision engine (github.com/pblumer/temis) into Atlas, so a BPMN business rule task can delegate a decision and get an answer back.
Package dmn integrates the temis DMN decision engine (github.com/pblumer/temis) into Atlas, so a BPMN business rule task can delegate a decision and get an answer back.
docs
adr
Package adr carries the ADR directory's own conventions as code: the parser for a decision record, the guard tests in adr_test.go that keep the directory and its index honest, and the merge-time numbering below.
Package adr carries the ADR directory's own conventions as code: the parser for a decision record, the guard tests in adr_test.go that keep the directory and its index honest, and the merge-time numbering below.
adr/cmd/adrnum command
Command adrnum assigns a number to every architecture decision record that is still in flight, and makes the repository agree about it.
Command adrnum assigns a number to every architecture decision record that is still in flight, and makes the repository agree about it.
Package engine is the heart of Atlas: a single-writer processor that folds commands into durable events and applies them to state.
Package engine is the heart of Atlas: a single-writer processor that folds commands into durable events and applies them to state.
Package expr is Atlas's boundary to a FEEL engine.
Package expr is Atlas's boundary to a FEEL engine.
Package job is Atlas's in-process worker harness: it bridges the engine's activatable jobs to worker handlers and feeds their results back as commands (ADR-0007, streaming pull with completion-as-command).
Package job is Atlas's in-process worker harness: it bridges the engine's activatable jobs to worker handlers and feeds their results back as commands (ADR-0007, streaming pull with completion-as-command).
Package jobtype carries Atlas's engine-wide job-type table: the one mapping from a job type's name to the integer index a job on disk carries.
Package jobtype carries Atlas's engine-wide job-type table: the one mapping from a job type's name to the integer index a job on disk carries.
Package limits is the one place that names every resource budget in an Atlas installation, and the one way to change them.
Package limits is the one place that names every resource budget in an Atlas installation, and the one way to change them.
Package logging gives Atlas's operational logs a stable contract (ADR-0142).
Package logging gives Atlas's operational logs a stable contract (ADR-0142).
Package mcp is Atlas's Model Context Protocol server: it lets an AI agent drive a running Atlas server through tools — deploy a BPMN model, manage design-time projects and artifacts, start an instance, complete human tasks, and inspect live runtime state.
Package mcp is Atlas's Model Context Protocol server: it lets an AI agent drive a running Atlas server through tools — deploy a BPMN model, manage design-time projects and artifacts, start an instance, complete human tasks, and inspect live runtime state.
Package metrics is Atlas's Prometheus exposition: an owned registry, the naming conventions every Atlas metric follows, and the HTTP handler that serves them (ADR-0142).
Package metrics is Atlas's Prometheus exposition: an owned registry, the naming conventions every Atlas metric follows, and the HTTP handler that serves them (ADR-0142).
Package mimimport converts Microsoft Identity Manager (MIM/FIM) workflow definitions into Atlas-executable BPMN 2.0 XML.
Package mimimport converts Microsoft Identity Manager (MIM/FIM) workflow definitions into Atlas-executable BPMN 2.0 XML.
Package model defines the records that flow through Atlas and their on-disk binary encoding.
Package model defines the records that flow through Atlas and their on-disk binary encoding.
Package opensearch exports Atlas's durable event history to an OpenSearch (or API-compatible Elasticsearch) index.
Package opensearch exports Atlas's durable event history to an OpenSearch (or API-compatible Elasticsearch) index.
Package playground runs a BPMN model on the real Atlas engine inside a throwaway sandbox, on a clock the caller owns.
Package playground runs a BPMN model on the real Atlas engine inside a throwaway sandbox, on a clock the caller owns.
Package promquery asks a Prometheus-compatible store what it recorded about an Atlas node (ADR-0189 P5b).
Package promquery asks a Prometheus-compatible store what it recorded about an Atlas node (ADR-0189 P5b).
Package state is Atlas's materialized state store: the queryable fold of the event log (ADR-0001), backed by Pebble (ADR-0003).
Package state is Atlas's materialized state store: the queryable fold of the event log (ADR-0001), backed by Pebble (ADR-0003).
Package tracing gives Atlas distributed traces (ADR-0142).
Package tracing gives Atlas distributed traces (ADR-0142).
Package wal is Atlas's write-ahead log: a segmented, append-only record store with group commit.
Package wal is Atlas's write-ahead log: a segmented, append-only record store with group commit.
Package worker is Atlas's out-of-process job worker: the binary, run as a client of its own HTTP API, leasing jobs of named types and reporting what happened (ADR-0157 step 5, over the protocol of ADR-0007).
Package worker is Atlas's out-of-process job worker: the binary, run as a client of its own HTTP API, leasing jobs of named types and reporting what happened (ADR-0157 step 5, over the protocol of ADR-0007).
Package workertype contains the design-time Worker Type manifest contract from ADR-0207.
Package workertype contains the design-time Worker Type manifest contract from ADR-0207.

Jump to

Keyboard shortcuts

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