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 → refreshIfNeededCross-community Processes
Processes that span multiple communities:
- Show system-wide flows
- Reveal architectural boundaries
- Higher change impact
API → Authentication → DataAccess → LoggingProcess 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"]
}Related Processes
Other processes that share entry points or patterns:
{
"related": [
{ "id": "proc_signup", "common_entry_point": "handleRequest" }
]
}How Processes Are Detected
noodlbox identifies processes through:
- Entry point detection - Find functions called from outside communities
- Path tracing - Follow call chains from entry points
- Pattern recognition - Group similar execution paths
- 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.stepUse 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
- Process Trace Resource - Access process data
- Communities - How code is grouped
- Impact Analysis - Analyze change impact on processes