Spark Structured Streaming
Slack aggregation runs on Spark
Decision lineage is the trail from a rule in the code back to the trigger, the constraint, the alternative that was ruled out, and the decision someone made. Virgo keeps that trail attached. You see why something is the way it is instead of guessing or asking around.
Months later, all that is left of a decision is the result and a scatter of stray artifacts across tools. The design doc, the incidents, the change that mattered are still out there, but nothing connects them, so you are left guessing.
Slack aggregation runs on Spark
Kafka Streams topology
Kafka Streams too unreliable to keep
First aggregation topology
Dropped messages; rebalancing freezes
Near-real-time windowed aggregation
RocksDB tuning and late records remain
Hand-rolled TimeWindows aggregation
Why does this run on Spark, not Kafka Streams?
Virgo links those scattered artifacts back into one decision history: the idea, the design, the trouble, the constraint, the pivot, and where it landed. It reconstructs the whole evolution, end to end.
Aggregate Slack events for the datasource
Near-real-time windowed aggregation
Kafka Streams topology
Cut into tasks
First aggregation topology
Dropped messages; rebalancing freezes
Hand-rolled TimeWindows aggregation
RocksDB tuning and late records remain
Kafka Streams too unreliable to keep
Stack is Python; Kafka Streams is JVM-only
PySpark, less low-level tuning
Slack aggregation runs on Spark
Ask why over MCP and Virgo walks the trail as a graph: every milestone returns the piece it holds, and the agent assembles them into the reason it is shaped the way it is.
Traced once, it serves the engineer weighing a change and the agent that must not undo a settled call.
See why a decision was made, what it ruled out, and what depends on it before you touch it. You stop re-debating settled calls and rediscovering constraints the hard way.
Hand an agent the decision and its constraints and it works within them, rather than reintroducing an approach the team already reverted. Virgo retrieves the lineage at query time, over MCP, so any agent reasons from the real history.
Roughly 3x fewer iterations in code generation when the prior decision and its constraints are on hand, not rediscovered.