Skip to content
Novus Examples
json1.4 KB

Pipeline DAG with a Cycle (JSON), Intentionally Invalid

The shared topology plus one back edge, making it intentionally invalid as a DAG. The document publishes the cycle it contains, so a scheduler or graph validator can be tested on both detecting the cycle and naming it.

Preview — first 50 linesjson
{
  "name": "orders_etl_cyclic",
  "description": "INTENTIONALLY INVALID as a DAG: the same topology plus a back edge from notify_owner to ingest_orders, which makes it cyclic.",
  "acyclic": false,
  "nodes": [
    {
      "id": "ingest_orders",
      "kind": "task"
    },
    {
      "id": "validate_orders",
      "kind": "task"
    },
    {
      "id": "transform_orders",
      "kind": "task"
    },
    {
      "id": "load_warehouse",
      "kind": "task"
    },
    {
      "id": "refresh_dashboard",
      "kind": "task"
    },
    {
      "id": "notify_owner",
      "kind": "task"
    }
  ],
  "edges": [
    {
      "from": "ingest_orders",
      "to": "validate_orders"
    },
    {
      "from": "validate_orders",
      "to": "transform_orders"
    },
    {
      "from": "transform_orders",
      "to": "load_warehouse"
    },
    {
      "from": "transform_orders",
      "to": "refresh_dashboard"
    },
    {
      "from": "load_warehouse",
      "to": "notify_owner"
75 lines total — download for the full file.

Specifications

Variant
intentionally invalid
Nodes
6
Edges
7
Acyclic
false
Back Edge
notify_owner -> ingest_orders
Cycle Length
5

Testing contract

Expected to fail
Scenario
Run cycle detection over a task graph that is deliberately not acyclic
Expected result
The validator rejects the graph and reports a cycle containing the notify_owner to ingest_orders back edge

What is a .json file?

JSON (JavaScript Object Notation) is a lightweight, text-based data-interchange format representing objects, arrays, strings, numbers, booleans, and null. It is language-independent, human-readable, and the dominant format for web APIs and configuration. It requires a single well-formed root value.

How to use this file

Use an example JSON file to test parsers and serializers, schema validation, Unicode and number-precision handling, and API request or response processing.

How to use this file for testing

“Pipeline DAG with a Cycle (JSON), Intentionally Invalid” is a deterministic Novus Examples fixture for Error handling, Config parsing, Schema validation. Deliberately corrupt and invalid files, clearly labelled, for testing how your tool fails.

Documented properties for this file: 6 nodes · 7 edges. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Pipeline and infrastructure fixtures are inert configuration: steps reference fictional images and scripts, and nothing here executes. Run your linter, schema validator, migrator, or policy engine against them, and expect the deprecated-syntax and intentionally invalid variants to be rejected.

Code examples

import json

with open("pipeline-dag-cycle.json") as f:
    data = json.load(f)
print(type(data), len(data))

Generated by generation/pipelines.py. Free for any use, no attribution required — license.