Core Architecture

DAG Execution Engine

Directed Acyclic Graphs for predictable, parallel, production-ready AI workflows.

Why DAG-Based Execution?

Most AI workflow tools give you one of two options: fully sequential (slow, simple) or fully agentic (fast, unpredictable). DAG-based execution gives you the best of both worlds.

From recent research (Dec 2024):

"DAG-like structures model workflows as nodes (agents/tools) connected by edges with conditional logic, providing maximum control, debugging, and production reliability for tasks exceeding single-agent capabilities."

— Digital Applied, AI Agent Orchestration Guide

Deterministic Execution

Same inputs, same execution order. Every time. No surprises in production.

Automatic Parallelization

Independent tasks run concurrently. Dependencies are respected automatically.

Clear Error Boundaries

When a task fails, you know exactly what failed and what depends on it.

Debuggable & Auditable

Full visibility into execution order, timing, and data flow.

How It Works in Nika

# You define tasks and flows...
tasks:
  - id: fetch
    fetch:
      url: "https://api.example.com/data"

  - id: analyze
    agent:
      prompt: "Analyze the fetched data"

  - id: validate
    agent:
      prompt: "Validate the analysis"

  - id: report
    agent:
      prompt: "Generate final report"

flows:
  - source: fetch
    target: [analyze, validate]  # Fan-out: parallel
  - source: [analyze, validate]  # Fan-in: wait for both
    target: report
    merge:
      strategy: all
      timeout: 30000

# Nika builds a DAG and executes optimally:
#
#         fetch
#        /      \
#   analyze    validate   ← Run in parallel
#        \      /
#         report          ← Wait for both, then run

Common Patterns

Sequential ChainA → B → C

Step-by-step processing

Fan-OutA → [B, C, D]

Parallel analysis

Fan-In[A, B, C] → D

Aggregation with merge

DiamondA → [B, C] → D

Split-process-merge

The Immutability Guarantee

One of Nika's 8 non-negotiable decisions:

"The DAG is IMMUTABLE after parsing"

This means: no agent, no runtime process, nothing can add or remove tasks during execution. What you define is what runs. Period.

Why this matters: In production, you need to know exactly what your workflow will do. An agent that can modify its own task graph is unpredictable by design. We chose predictability.

Research Context (2024-2025)

Our approach aligns with recent industry trends toward hybrid orchestration:

  • Dapr Agents uses deterministic workflows + PubSub for durable multi-agent coordination
  • Camunda embeds agents in BPMN flows for enterprise governance
  • LangGraph provides node-edge DAGs with memory persistence

Nika's differentiator: we're YAML-first and CLI-native, making DAG-based workflows accessible without SDK boilerplate.

DAG execution is core to Nika

Try it in the upcoming beta.