Welcome, Guest | Browse

Software Factory Archive

← Previous Work All Works Next Work →

Edge Conditions

Rating:
General Audiences
Fandom:
StrongDM Software Factory
Characters:
Navan Chauhan Jay Taylor Justin McCarthy
Tags:
Attractor Edge Routing Conditional Logic Elegance
Words:
441
Published:
2025-08-15

Navan found it on a Thursday. He'd been staring at a DOT file for the better part of an hour, trying to express a conditional: if the code generation passed scenario validation above 0.9, advance to deployment. If it scored between 0.7 and 0.9, loop back to codergen for another iteration. Below 0.7, escalate to human review.

In any programming language he knew, this would be an if-else chain. Three branches, three blocks, nested brackets, indentation. In Swift, it would be clean enough. In a shell script, it would be ugly. In YAML, it would be an abomination.

In Attractor, it was three edges leaving one node.

Each edge had a condition attribute. satisfaction >= 0.9 on the edge to the deploy node. satisfaction >= 0.7 AND satisfaction < 0.9 on the edge looping back to codergen. satisfaction < 0.7 on the edge to human review. Three edges, three conditions, no nesting, no brackets, no indentation. The logic was visible in the graph topology.

"Jay," Navan said. "Look at this."

Jay came over and looked. He tilted his head slightly, the way people do when they're reading something upside-down or when they're seeing a familiar thing from an unfamiliar angle.

"The conditions are on the edges," he said.

"The conditions are the edges. There's no separate routing logic. There's no controller. There's no switch statement buried in a handler somewhere. The graph itself expresses the conditional. The topology is the logic."

Jay was quiet for a moment. "That's... elegant is the wrong word. Elegant implies ornamentation. This is just clear."

"It's more than clear. It's visible. If you render this graph, you can see the three possible paths radiating out from the assessment node. You can see the pipeline branch. You don't have to read code to understand the flow. You look at the picture."

Justin, walking past with his coffee, paused. "Now change the threshold."

Navan edited the condition on one edge. Changed 0.9 to 0.92. Saved the file. That was it. No recompile, no redeploy, no test suite. The pipeline's behavior had changed because the graph had changed.

"In the old world," Justin said, "you'd file a pull request for that."

"In the old world," Navan said, "I'd file a pull request, wait for review, argue about whether 0.92 was better than 0.9, merge it, redeploy, and then find out the change broke something unrelated because the conditional was entangled with three other branches."

"And here?"

Navan pointed at the DOT file. "Here, the edge is the condition. I changed the edge. I changed the condition. Nothing else was touched because nothing else could be touched. The isolation is structural."

He saved his notebook entry for the day in three words: edges are elegant.

Kudos: 87

cedar_policy_nerd 2025-08-17

"The isolation is structural." This is what every policy language tries to achieve. Attractor gets it for free because the graph format physically prevents entanglement.

scenario_enjoyer 2025-08-18

Navan's three-word notebook entry kills me every time. "Edges are elegant." The kid distills a whole architectural insight into a haiku-length observation.

← Previous Work All Works Next Work →