noodlbox

Processes

Understanding execution flows in noodlbox

Processes are execution flows through your codebase - the paths that trace how operations move from start to finish.

What is a Process?

A process represents a sequence of function calls that accomplish something:

  • A user logging in
  • An API request being handled
  • Data being transformed and saved

Processes show you the "how" of your code - not just what functions exist, but how they work together.

Process Types

Intra-community Processes

Processes that stay within a single community:

  • More localized
  • Easier to understand
  • Lower change impact
Authentication Community:
  validateToken → checkExpiry → refreshIfNeeded

Cross-community Processes

Processes that span multiple communities:

  • Show system-wide flows
  • Reveal architectural boundaries
  • Higher change impact
API → Authentication → DataAccess → Logging

Process Properties

Trace

The ordered sequence of function calls:

{
  "trace": [
    { "step": 1, "name": "handleRequest", "location": "src/api/handler.ts:23" },
    { "step": 2, "name": "authenticate", "location": "src/auth/auth.ts:45" },
    { "step": 3, "name": "fetchUser", "location": "src/data/users.ts:67" },
    { "step": 4, "name": "respond", "location": "src/api/response.ts:12" }
  ]
}

Communities Traversed

Which communities the process touches:

{
  "communities": ["API", "Authentication", "DataAccess"]
}

Other processes that share entry points or patterns:

{
  "related": [
    { "id": "proc_signup", "common_entry_point": "handleRequest" }
  ]
}

How Processes Are Detected

noodlbox identifies processes through:

  1. Entry point detection - Find functions called from outside communities
  2. Path tracing - Follow call chains from entry points
  3. Pattern recognition - Group similar execution paths
  4. Labeling - Generate descriptive names

Working with Processes

Viewing Process Traces

Get the full trace of a process:

GET map://{repository}/process/{id}

Finding Processes in Communities

Explore a community to see its processes:

GET map://{repository}/community/{id}

Querying Process Steps

Use Cypher to analyze process steps:

MATCH (s:CodeSymbol)-[r:STEP_IN_PROCESS]->(p:Process)
WHERE p.label = "UserLogin"
RETURN s.name, r.step, s.file_path
ORDER BY r.step

Use Cases

Understanding Features

See exactly how a feature works by tracing its process.

Debugging

Follow the process trace to understand where errors occur in the flow.

Impact Analysis

Cross-community processes show which parts of the system are affected by changes.

Documentation

Processes serve as living documentation of how your code actually works.

Code Review

Verify that changes don't break process flows.

Example: User Login Process

{
  "id": "proc_login",
  "label": "UserLogin",
  "process_type": "cross_community",
  "communities": ["API", "Authentication", "DataAccess", "Session"],
  "trace": [
    {
      "step": 1,
      "name": "handleLoginRequest",
      "location": "src/api/auth.ts:45"
    },
    {
      "step": 2,
      "name": "validateCredentials",
      "location": "src/auth/validate.ts:23"
    },
    {
      "step": 3,
      "name": "getUserByEmail",
      "location": "src/data/users.ts:67"
    },
    {
      "step": 4,
      "name": "comparePassword",
      "location": "src/auth/password.ts:34"
    },
    {
      "step": 5,
      "name": "createSession",
      "location": "src/session/create.ts:12"
    },
    {
      "step": 6,
      "name": "respondWithToken",
      "location": "src/api/response.ts:89"
    }
  ]
}

This process shows:

  • Entry through API layer
  • Credential validation in Authentication
  • Database lookup in DataAccess
  • Session creation in Session
  • Response back through API

Learn More

On this page