Jay had been staring at the whiteboard for forty minutes. Not the kind of staring where your mind wanders to lunch or the weekend—the kind where your entire nervous system is trying to compress a feeling into a shape. He had the feeling. He didn't have the shape yet.
"What if conversations aren't linear?" he said to nobody in particular.
Navan looked up from his notebook. Actual paper notebook, the kind with graph lines. "They're not. People interrupt each other, backtrack, change the subject."
"No, I mean—" Jay erased a line on the whiteboard and redrew it as a node. "What if each message in a conversation isn't a step in a sequence? What if it's a node in a graph?"
Justin was passing through the hallway. He stopped. He leaned against the doorframe the way a person does when they've decided they're not going anywhere for a while.
"Keep going," Justin said.
Jay drew another node, connected it to the first with an arrow. "A Turn. That's what I'm calling it. An immutable node in a directed acyclic graph. Once it's written, it never changes. You can't edit it. You can't delete it. You can only append new turns that point back to it."
"Like git commits," Navan said.
"Exactly like git commits. Except the content isn't source code. It's conversation. It's context. It's everything an AI agent said and did and thought at a specific moment." Jay drew a third node branching off the first. "And because it's a DAG, you can branch. Turn one leads to turn two, but it also leads to turn three. Two different futures from the same past."
Navan set down his pen. "So an agent conversation isn't a chat log. It's a tree."
"It's more than a tree. Trees have a single root and no merges. A DAG can have—" Jay caught himself. "Okay, for now it's a tree. But the data structure allows for more."
Justin pushed off the doorframe and walked to the whiteboard. He tapped the first node. "This is how AI memory should work. Not a flat transcript. Not a sliding context window that forgets everything older than 128k tokens. A graph. Where every moment is addressable, every moment is permanent, and you can always go back."
"You can always go back," Jay repeated, and the words settled into the room like they meant more than version control.
He wrote a single word at the top of the whiteboard: Turn.
"Each turn stores its parent hash," he continued. "Its depth from root. Its payload, which can be anything—text, tool calls, structured data. And its content hash, so you can verify integrity without trusting anyone."
Navan was already sketching the data structure in his notebook. "What do you call the whole thing? The database?"
Jay looked at Justin. Justin looked at the whiteboard.
"CXDB," Justin said. "Context database."
The name stuck to the wall like it had always been there.
The moment Jay realizes conversations are graphs and not lists is so satisfying. This is the kind of architectural insight that changes everything downstream.