Skip to main content
Version: 2.0.0

Execution Plans

An execution plan is the Directed Acyclic Graph that Tabsdata automatically builds and executes whenever a function is triggered.

Tabsdata Functions are self describing, allowing Tabsdata to infer a Function's dependencies and automatically fire it when needed.

How Tabsdata Automates Orchestration

In other systems, DAG nodes need to be manually wired together, with explicit declaration of what data one node passes to the other.

In Tabsdata, Functions never directly pass data to other Functions. Instead, Functions write tabular data into Tables and other Functions use those tables as input. When a Table gets new data, all functions that use it as input get triggered.

TLDR: Your Functions are also your data flow. Click on a Publisher, Transformer, or Subscriber to see the Execution Plan that is created if that Function is triggered.

Click any node to trace its dependencies

Determinism

Execution plans are idempotent and deterministic. When an execution plan is generated, it contains a full snapshot of metadata and configurations used for the plan; such as start and stop timestamps, function code used for the plan, source data ingested, Table data generated, and data written out of Tabsdata

Execution Plan Architecture

An Execution Plan is a DAG of all Functions Tabsdata intends to execute. A plan contains transactions, function runs, and workers.

A function is triggered
creates
Execution planOne per function triggered
TransactionsOne per collection in the execution plan
Function runsOne per function in the transaction
WorkersOne per attempted code execution (max 3)

Inspecting a plan

Four commands cover the four levels: tdk plan, tdk trx, tdk fnrun, and tdk worker. See the CLI Guide for what each one accepts.

Execution & Triggers covers what fires a plan in the first place, along with the pristine-state guarantee it carries.