Inspiration

We experienced the problem firsthand: Cursor was used to build the UI, Claude to tweak backend logic, and each assistant worked with different context. Decisions made in one session were invisible to the next.

We realized teams do not need another model-specific memory store. They need shared context tied to the actual tables, columns, and pipelines being changed. That inspired Relay.

What it does

Relay is shared decision memory for AI-assisted data teams.

A developer records an approved decision about a dataset or field. When another developer or AI assistant proposes a conflicting change, Relay:

• retrieves the relevant schema, lineage, documentation, and previous decisions; • detects semantic conflicts; • explains the conflict with cited evidence; • shows affected downstream assets; and • saves the human-approved resolution for future developers and agents.

How we built it

We built Relay as a React and Vite dashboard with a FastAPI backend.

The backend provides a DataHub gateway that uses MCP tools such as entity search, metadata retrieval, lineage traversal, and linked Decision-document write-back. It also includes a reproducible local gateway fixture for running the demo without external credentials.

Conflict analysis combines deterministic rules with an optional grounded LLM reviewer. The browser never receives DataHub or LLM credentials.

Challenges we ran into

The hardest challenge was making conflict detection explainable. A warning without evidence would be another AI opinion, so every Relay result needed to reference the exact schema field, lineage dependency, documentation, or prior decision supporting it.

We also had to design a portable Decision Record that remains useful across different developers and models without storing private prompts or hidden chain-of-thought.

Finally, we balanced a reliable local demo with an architecture that can switch to a real DataHub MCP endpoint.

Accomplishments that we're proud of

We built a complete conflict-to-resolution workflow:

  1. Relay loads asset-level and field-level context.
  2. A second AI-assisted developer proposes a contradictory decision.
  3. Relay detects and explains the conflict.
  4. The developer selects a safe resolution.
  5. The approved decision is written back into shared memory.

We are especially proud that DataHub is both the context source and the durable destination for approved knowledge—not just a metadata lookup service.

What we learned

We learned that model agnosticism is not about supporting more chat interfaces. It is about moving organizational knowledge outside individual AI sessions.

We also learned that lineage makes decision memory significantly more valuable. A convention is easier to understand and enforce when developers can immediately see which dashboards, features, or pipelines depend on it.

Most importantly, AI-generated conclusions become trustworthy only when users can inspect their evidence.

What's next for Relay

Next, we want to:

• connect Relay directly to pull-request and CI workflows; • capture approved decisions from IDE assistants automatically; • support more DataHub entity types and column-level lineage; • add governed approval and supersession workflows; • notify downstream owners when decisions affect their assets; and • evaluate semantic conflicts using production DataHub context at enterprise scale.

Our goal is for every AI assistant to inherit the same organizational understanding—regardless of which model or tool a developer chooses.

Built With

Share this project:

Updates