<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mayank Mudgal</title>
    <description>The latest articles on DEV Community by Mayank Mudgal (@mudgal_mayank).</description>
    <link>https://dev.to/mudgal_mayank</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3981569%2Fd27a7c76-420c-46dc-a856-e2d7c05cfe4a.png</url>
      <title>DEV Community: Mayank Mudgal</title>
      <link>https://dev.to/mudgal_mayank</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mudgal_mayank"/>
    <language>en</language>
    <item>
      <title>ThoughtSpot Alternatives: Why AI Agents Need a Semantic Compiler</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Thu, 03 Sep 2026 06:05:58 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/thoughtspot-alternatives-why-ai-agents-need-a-semantic-compiler-3d8c</link>
      <guid>https://dev.to/mudgal_mayank/thoughtspot-alternatives-why-ai-agents-need-a-semantic-compiler-3d8c</guid>
      <description>&lt;p&gt;ThoughtSpot bet that people want to search their data. They were right, and it worked.&lt;/p&gt;

&lt;p&gt;Then the primary user stopped being a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search was a genuinely good idea
&lt;/h2&gt;

&lt;p&gt;Search-first BI made analytics approachable for business users, and the indexing engineering behind it was serious. For analyst-led exploration it still holds up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agents don't search — they resolve
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need&lt;/th&gt;
&lt;th&gt;Search ranking&lt;/th&gt;
&lt;th&gt;Semantic compiler&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Which definition applies&lt;/td&gt;
&lt;td&gt;Top-ranked candidate&lt;/td&gt;
&lt;td&gt;The authoritative one, versioned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Which join to use&lt;/td&gt;
&lt;td&gt;Relevance score&lt;/td&gt;
&lt;td&gt;Proven path, or failure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorisation&lt;/td&gt;
&lt;td&gt;Around the content&lt;/td&gt;
&lt;td&gt;Injected into the query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Determinism&lt;/td&gt;
&lt;td&gt;Ranking can shift&lt;/td&gt;
&lt;td&gt;Identical by construction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audit&lt;/td&gt;
&lt;td&gt;Cites the worksheet&lt;/td&gt;
&lt;td&gt;Reproduces the SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;"Best match" is a reasonable standard for a human exploring. It isn't a standard of proof, and every row above is downstream of that difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  The modelling burden nobody mentions
&lt;/h2&gt;

&lt;p&gt;Search quality depends on a curated worksheet layer someone maintains. That's where most deployments quietly stall — not on user adoption, but on the sustained modelling effort that keeps search results correct as schemas move.&lt;/p&gt;

&lt;p&gt;Ask any vendor in this category: does the system's knowledge of my business grow because someone curated it, or because it read my sources and maintains itself?&lt;/p&gt;

&lt;h2&gt;
  
  
  When ThoughtSpot remains right
&lt;/h2&gt;

&lt;p&gt;Analysts exploring, curiosity-driven work, a team that owns the worksheet layer. Good fit, real value.&lt;/p&gt;

&lt;p&gt;The trigger to look elsewhere is when the output starts feeding automated decisions or regulated workflows — because then ranking isn't enough and you need proof.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the scored alternatives comparison, the modelling cost analysis, and the agent-native requirements — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/thoughtspot-alternatives/" rel="noopener noreferrer"&gt;ThoughtSpot Alternatives: Why AI Agents Need a Semantic Compiler&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/thoughtspot-alternatives/" rel="noopener noreferrer"&gt;colrows.com/blogs/thoughtspot-alternatives&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>database</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>The ROI of a Company Brain: What the Evidence Actually Shows Executives</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Tue, 01 Sep 2026 15:43:30 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/the-roi-of-a-company-brain-what-the-evidence-actually-shows-executives-2k6f</link>
      <guid>https://dev.to/mudgal_mayank/the-roi-of-a-company-brain-what-the-evidence-actually-shows-executives-2k6f</guid>
      <description>&lt;p&gt;Every AI business case I see is built on a vendor's ROI calculator.&lt;/p&gt;

&lt;p&gt;Here's what the numbers look like when they come from deployments instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three patterns that hold up
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Decision latency collapses before headcount changes.&lt;/strong&gt; At Cipla, decision latency fell over 90% and data adoption rose 8×. The win was speed, not savings — and it arrived first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The IT burden drops as a second-order effect.&lt;/strong&gt; An 80% fall in report requests wasn't the goal. It happened because people stopped needing a human to interpret data for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diagnosis time is where the outsized numbers live.&lt;/strong&gt; Campaign diagnosis went from days to effectively instant — roughly a 1000× improvement — because the causal path was already modelled rather than reconstructed by an analyst each time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern across deployments
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Organisation&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cipla (pharma)&lt;/td&gt;
&lt;td&gt;8× data adoption · &amp;gt;90% lower decision latency · 80% fewer IT report requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSP Group (travel retail)&lt;/td&gt;
&lt;td&gt;40% less data-management overhead · 3× faster issue resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Confidential ARC (BFSI)&lt;/td&gt;
&lt;td&gt;&amp;gt;95% lower evaluation cycle time · 100% regulatory coverage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What this says about how to budget
&lt;/h2&gt;

&lt;p&gt;ROI doesn't come from replacing analysts. It comes from removing the wait between a question and a &lt;em&gt;trustworthy&lt;/em&gt; answer.&lt;/p&gt;

&lt;p&gt;That ordering matters for the business case. Fund the layer that makes answers trustworthy and the productivity numbers follow. Fund the productivity tool first and you get a pilot, because nobody acts on numbers they can't defend.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number to put in the model
&lt;/h2&gt;

&lt;p&gt;Not headcount saved. &lt;strong&gt;Decision latency&lt;/strong&gt; — how long between a question being asked and a defensible answer existing. It's measurable today, it's usually embarrassing, and it's the variable that actually moves.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full evidence review&lt;/strong&gt; — the deployment data, the methodology behind each figure, and how to build the business case — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/company-brain-roi-evidence-for-executives/" rel="noopener noreferrer"&gt;The ROI of a Company Brain: What the Evidence Actually Shows Executives&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/company-brain-roi-evidence-for-executives/" rel="noopener noreferrer"&gt;colrows.com/blogs/company-brain-roi-evidence-for-executives&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>architecture</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>Wren AI Alternatives: When Open-Source GenBI Needs Production Governance</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Tue, 01 Sep 2026 15:40:32 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/wren-ai-alternatives-when-open-source-genbi-needs-production-governance-586g</link>
      <guid>https://dev.to/mudgal_mayank/wren-ai-alternatives-when-open-source-genbi-needs-production-governance-586g</guid>
      <description>&lt;p&gt;Wren AI is the most credible open-source answer to conversational BI right now.&lt;/p&gt;

&lt;p&gt;It's also the fastest way to learn that the hard part was never the chat interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open source is the right pilot choice
&lt;/h2&gt;

&lt;p&gt;No procurement, full visibility into behaviour, easy to prove or kill the concept. For validating that your users actually want this, it's hard to beat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where production changes the calculation
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concern&lt;/th&gt;
&lt;th&gt;Open source reality&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Semantic modelling&lt;/td&gt;
&lt;td&gt;Yours to author and maintain, indefinitely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance&lt;/td&gt;
&lt;td&gt;Integrates with your stack rather than enforcing in-query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-tenant isolation&lt;/td&gt;
&lt;td&gt;Your engineering problem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audit trails&lt;/td&gt;
&lt;td&gt;Your engineering problem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy ceiling&lt;/td&gt;
&lt;td&gt;Plateaus at whatever modelling effort you sustain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drift detection&lt;/td&gt;
&lt;td&gt;Not included&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;None of that is a criticism — it's what open source &lt;em&gt;is&lt;/em&gt;. The question is whether your team wants to own a semantic layer as a product, or consume one as infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two-year test
&lt;/h2&gt;

&lt;p&gt;Ask who authors the semantic model in year two, after the engineer who set it up has moved to another team.&lt;/p&gt;

&lt;p&gt;If the answer is "we'll rotate it," you've committed to permanent maintenance with no owner. That's the pattern that turns a successful pilot into a stalled deployment — not a technical failure, just entropy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to compare on
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Who maintains the model as schemas change — a person, or the system?&lt;/li&gt;
&lt;li&gt;Is authorisation proven pre-execution, or filtered after?&lt;/li&gt;
&lt;li&gt;Is the join path proven, or inferred?&lt;/li&gt;
&lt;li&gt;Can you reproduce a historical answer with the definitions then in force?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Wren scores honestly on all four; you just need to know that three of them become your backlog.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the scored comparison, the build-vs-consume framing, and what production hardening involves — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/wren-ai-alternatives/" rel="noopener noreferrer"&gt;Wren AI Alternatives: When Open-Source GenBI Needs Production Governance&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/wren-ai-alternatives/" rel="noopener noreferrer"&gt;colrows.com/blogs/wren-ai-alternatives&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>database</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Cortex Analyst Alternatives: Why Your Company Needs More Than Snowflake's Agentic Analyst</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Thu, 27 Aug 2026 15:01:11 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/cortex-analyst-alternatives-why-your-company-needs-more-than-snowflakes-agentic-analyst-5gam</link>
      <guid>https://dev.to/mudgal_mayank/cortex-analyst-alternatives-why-your-company-needs-more-than-snowflakes-agentic-analyst-5gam</guid>
      <description>&lt;p&gt;Cortex Analyst is a good product with one hard boundary: it ends where Snowflake ends.&lt;/p&gt;

&lt;p&gt;Most enterprises find that boundary about three weeks in.&lt;/p&gt;

&lt;h2&gt;
  
  
  When it's the right answer
&lt;/h2&gt;

&lt;p&gt;Everything you care about is in Snowflake, and someone maintains the semantic model file. That's a real configuration, it's already in your bill, and the integration depth is genuine.&lt;/p&gt;

&lt;h2&gt;
  
  
  When the evaluation starts
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Why Cortex strains&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Data across Snowflake + lakehouse + operational systems&lt;/td&gt;
&lt;td&gt;Scope stops at Snowflake&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Questions needing cross-boundary joins&lt;/td&gt;
&lt;td&gt;Falls back to hand-written SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance must be consistent everywhere&lt;/td&gt;
&lt;td&gt;Snowflake RBAC covers Snowflake&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No owner for the semantic model file&lt;/td&gt;
&lt;td&gt;Accuracy tracks a file nobody maintains&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents asking unmodelled questions&lt;/td&gt;
&lt;td&gt;Improvises rather than refusing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The last row deserves emphasis. Warehouse-native assistants generally don't distinguish "I have no basis for this" from "here's a plausible join" — so the failure is silent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two categories of alternative
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Other warehouse-native assistants&lt;/strong&gt; — Genie, Power BI Copilot and similar. Different platform, identical architecture, identical boundary. Switching gets you a different logo and the same ceiling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-estate semantic layers&lt;/strong&gt; — resolve intent against a graph spanning every source, prove the join path regardless of which engine holds the tables, compile policy uniformly, and emit dialect-perfect SQL per target.&lt;/p&gt;

&lt;p&gt;Only the second category answers cross-platform questions without someone hand-writing the join underneath.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question to bring to any demo
&lt;/h2&gt;

&lt;p&gt;"Show me a question that spans Snowflake and something that isn't Snowflake." It's a short conversation, and it's the one that matters.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the scored alternatives comparison, the multi-platform architecture, and migration considerations — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/cortex-analyst-alternatives/" rel="noopener noreferrer"&gt;Cortex Analyst Alternatives: Why Your Company Needs More Than Snowflake's Agentic Analyst&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/cortex-analyst-alternatives/" rel="noopener noreferrer"&gt;colrows.com/blogs/cortex-analyst-alternatives&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>database</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Company Brain Security: Deterministic Governance for Enterprise AI</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Tue, 25 Aug 2026 17:58:07 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/company-brain-security-deterministic-governance-for-enterprise-ai-1d1f</link>
      <guid>https://dev.to/mudgal_mayank/company-brain-security-deterministic-governance-for-enterprise-ai-1d1f</guid>
      <description>&lt;p&gt;Every company brain demo ends with "and it knows everything about your business."&lt;/p&gt;

&lt;p&gt;That's the pitch. To a CISO, it's also the entire objection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the objection is correct
&lt;/h2&gt;

&lt;p&gt;A system that ingests every document, ticket, contract and table has, by construction, assembled the most sensitive object in the company. Then you point an LLM at it and expose it via chat.&lt;/p&gt;

&lt;p&gt;The security question isn't paranoia. It's the deployment blocker, and it's usually raised too late.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four questions that decide whether it ships
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Bad answer&lt;/th&gt;
&lt;th&gt;Good answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Does the index respect source permissions?&lt;/td&gt;
&lt;td&gt;Flattened at ingest&lt;/td&gt;
&lt;td&gt;Entitlement preserved per concept&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Two users, same question — same answer?&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No, and correctly different&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;When is entitlement evaluated?&lt;/td&gt;
&lt;td&gt;Per corpus, at build&lt;/td&gt;
&lt;td&gt;Per query, at compile time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can you prove a specific person could see a specific answer?&lt;/td&gt;
&lt;td&gt;Access logs&lt;/td&gt;
&lt;td&gt;The SQL with predicates inline&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Row two is the sharpest test. If two people with different clearances get identical answers, entitlement was lost somewhere in the pipeline — and "we filter the response" means the retrieval already surfaced it internally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why retrieval architectures struggle here
&lt;/h2&gt;

&lt;p&gt;Embeddings don't carry ACLs. When you flatten a corpus into vectors, source permissions are metadata at best, and reconstructing them at query time is approximate by nature.&lt;/p&gt;

&lt;p&gt;Compile-time governance inverts the order: policy is evaluated as part of &lt;em&gt;resolving the question&lt;/em&gt;, so an unauthorised answer is never assembled. Nothing to filter, because nothing was retrieved.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to require
&lt;/h2&gt;

&lt;p&gt;Policy attached to concepts, not documents. RBAC plus ABAC plus row and column predicates injected before execution. De-identified resolution paths for aggregate questions. And a point-in-time reproducible audit trail — which your annual assessment needs anyway.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the security architecture, the privacy model, and how compile-time governance handles unstructured sources — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/company-brain-security-privacy/" rel="noopener noreferrer"&gt;Company Brain Security: Deterministic Governance for Enterprise AI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/company-brain-security-privacy/" rel="noopener noreferrer"&gt;colrows.com/blogs/company-brain-security-privacy&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>architecture</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>Cube Alternatives: When a Headless Semantic Layer Stops Fitting Your AI Agents</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Thu, 20 Aug 2026 17:11:26 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/cube-alternatives-when-a-headless-semantic-layer-stops-fitting-your-ai-agents-3n44</link>
      <guid>https://dev.to/mudgal_mayank/cube-alternatives-when-a-headless-semantic-layer-stops-fitting-your-ai-agents-3n44</guid>
      <description>&lt;p&gt;Teams don't leave Cube because of Cube. They leave because the consumer changed.&lt;/p&gt;

&lt;p&gt;An API built for applications turns out to be the wrong shape for an agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cube's model is clean
&lt;/h2&gt;

&lt;p&gt;Define a metric once, serve it everywhere over an API. For multi-app estates where several front-ends need the same numbers, that holds up well and the caching story is genuinely good.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the pressure appears
&lt;/h2&gt;

&lt;p&gt;An agent can't name the metric it needs. It arrives with intent and has to work out entities, grain, joins and permissions on the fly. An API contract doesn't help with any of that — it assumes the caller already knows what to ask for.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Headless API&lt;/th&gt;
&lt;th&gt;Compiled layer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Resolves arbitrary intent?&lt;/td&gt;
&lt;td&gt;No — pre-defined metrics only&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Join path&lt;/td&gt;
&lt;td&gt;Modelled by hand&lt;/td&gt;
&lt;td&gt;Proven at compile time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance&lt;/td&gt;
&lt;td&gt;In front of the API&lt;/td&gt;
&lt;td&gt;Injected into the SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model upkeep&lt;/td&gt;
&lt;td&gt;A person&lt;/td&gt;
&lt;td&gt;The system, with drift detection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Undefined question&lt;/td&gt;
&lt;td&gt;404, effectively&lt;/td&gt;
&lt;td&gt;Resolved or explicitly refused&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The four things to compare on
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Does the layer resolve arbitrary intent, or only pre-modelled metrics?&lt;/li&gt;
&lt;li&gt;Is the join path proven, or assumed?&lt;/li&gt;
&lt;li&gt;Is governance in front of the API, or compiled into the query?&lt;/li&gt;
&lt;li&gt;Who maintains definitions as the schema drifts?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Question four is the cost question in disguise. Pre-aggregation maintenance and data-model authoring are both engineering time, and neither appears on the invoice you're comparing.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to keep Cube
&lt;/h2&gt;

&lt;p&gt;Many applications, stable metric set, humans or code as consumers. That's the configuration it was designed for and there's no reason to move.&lt;/p&gt;

&lt;p&gt;The trigger to look elsewhere is agents becoming the primary caller — because then coverage stops being a modelling exercise and starts being the bottleneck.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the scored alternatives comparison, migration considerations, and the cost model — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/cube-alternatives/" rel="noopener noreferrer"&gt;Cube Alternatives: When a Headless Semantic Layer Stops Fitting Your AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/cube-alternatives/" rel="noopener noreferrer"&gt;colrows.com/blogs/cube-alternatives&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>database</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Snowflake Cortex Analyst vs Databricks Genie: Where Warehouse-Native AI Stops</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Tue, 18 Aug 2026 15:01:11 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/snowflake-cortex-analyst-vs-databricks-genie-where-warehouse-native-ai-stops-4696</link>
      <guid>https://dev.to/mudgal_mayank/snowflake-cortex-analyst-vs-databricks-genie-where-warehouse-native-ai-stops-4696</guid>
      <description>&lt;p&gt;Both promise your business users can simply ask the warehouse a question.&lt;/p&gt;

&lt;p&gt;Both quietly require someone to hand-curate the context before that works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Having run both against real enterprise schemas
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Cortex Analyst&lt;/th&gt;
&lt;th&gt;Databricks Genie&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context artefact&lt;/td&gt;
&lt;td&gt;Hand-authored semantic model file&lt;/td&gt;
&lt;td&gt;Curated Space + example queries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strong when&lt;/td&gt;
&lt;td&gt;Inside Snowflake, file well-written&lt;/td&gt;
&lt;td&gt;Inside Databricks, Space well-curated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy tracks&lt;/td&gt;
&lt;td&gt;Quality of that YAML&lt;/td&gt;
&lt;td&gt;Quality of that curation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outside the curation&lt;/td&gt;
&lt;td&gt;Degrades, often silently&lt;/td&gt;
&lt;td&gt;Degrades, often silently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-platform&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Join proof&lt;/td&gt;
&lt;td&gt;No — inferred&lt;/td&gt;
&lt;td&gt;No — inferred&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance&lt;/td&gt;
&lt;td&gt;Snowflake RBAC around the query&lt;/td&gt;
&lt;td&gt;Unity Catalog around the query&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The honest scorecard: both are good implementations of the same idea, and both externalise the hard part back to you. &lt;strong&gt;The curation is the product.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What that means practically
&lt;/h2&gt;

&lt;p&gt;Your evaluation isn't really of the tool. It's of your organisation's sustained capacity to author and maintain context files — a task with no natural owner and no visible reward.&lt;/p&gt;

&lt;p&gt;When the question falls outside what was curated, you get a confident answer built on a guessed join. Nothing in the output signals that boundary was crossed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Neither is wrong for a single-platform shop
&lt;/h2&gt;

&lt;p&gt;If your estate genuinely lives on one platform and someone owns the context artefact, either will serve you well and it's already in the bill.&lt;/p&gt;

&lt;p&gt;Both stop at the platform boundary, and neither proves the join path before executing. Those two limits are architectural — they're the reason a cross-estate compiled layer exists, not a feature gap that will be closed in the next release.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full scorecard&lt;/strong&gt; — the head-to-head with methodology, pricing implications, and where each stops — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/cortex-analyst-vs-genie/" rel="noopener noreferrer"&gt;Snowflake Cortex Analyst vs Databricks Genie: Where Warehouse-Native AI Stops&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/cortex-analyst-vs-genie/" rel="noopener noreferrer"&gt;colrows.com/blogs/cortex-analyst-vs-genie&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>database</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Deterministic vs. Probabilistic Text-to-SQL: Why Accuracy Matters</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Mon, 17 Aug 2026 14:48:59 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/deterministic-vs-probabilistic-text-to-sql-why-accuracy-matters-3p5</link>
      <guid>https://dev.to/mudgal_mayank/deterministic-vs-probabilistic-text-to-sql-why-accuracy-matters-3p5</guid>
      <description>&lt;p&gt;Ask the same question twice and get two different numbers.&lt;/p&gt;

&lt;p&gt;That's not a bug you can patch. It's the architecture telling you what it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variance isn't a tuning problem
&lt;/h2&gt;

&lt;p&gt;Probabilistic systems sample. Sampling means variance. Variance in a marketing subject line is fine; variance in a regulatory filing is a finding.&lt;/p&gt;

&lt;p&gt;And setting &lt;code&gt;temperature: 0&lt;/code&gt; doesn't fix it — greedy decoding over an ambiguous schema reliably picks the &lt;em&gt;same wrong join&lt;/em&gt; every time. You've traded variance for consistent error, which is worse, because now it looks reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What deterministic actually means here
&lt;/h2&gt;

&lt;p&gt;Not that the model stops being probabilistic. That the model never decides anything that matters.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;th&gt;Probabilistic design&lt;/th&gt;
&lt;th&gt;Deterministic design&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Language → intent&lt;/td&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Which entity / metric&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Model guesses&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Semantic graph resolves&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Which join path&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Model guesses&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Planner proves&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorisation&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Post-filter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Policy engine, at compile time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL emission&lt;/td&gt;
&lt;td&gt;Model writes&lt;/td&gt;
&lt;td&gt;Compiler emits&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Four of the five decisions move out of the model. What's left is the one thing an LLM is genuinely good at: parsing natural language into structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The consequences that follow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Same question, same graph version, &lt;strong&gt;same answer&lt;/strong&gt; — every time&lt;/li&gt;
&lt;li&gt;Ambiguity produces a &lt;strong&gt;refusal&lt;/strong&gt;, not a guess&lt;/li&gt;
&lt;li&gt;The answer is &lt;strong&gt;reproducible&lt;/strong&gt; point-in-time, which is what auditors need&lt;/li&gt;
&lt;li&gt;Results are &lt;strong&gt;cacheable&lt;/strong&gt; and reviewable, because they're stable&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why it shows in the numbers
&lt;/h2&gt;

&lt;p&gt;On real enterprise schemas, raw schema access scored &lt;strong&gt;14.5%&lt;/strong&gt; in our benchmark. The same model with compiled, governed context scored &lt;strong&gt;98.2%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's not a better model. That's removing every point at which the model had to guess.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — why "deterministic settings" aren't deterministic, the architectural split, and the benchmark methodology — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/deterministic-vs-probabilistic-text-to-sql/" rel="noopener noreferrer"&gt;Deterministic vs. Probabilistic Text-to-SQL: Why Accuracy Matters&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/deterministic-vs-probabilistic-text-to-sql/" rel="noopener noreferrer"&gt;colrows.com/blogs/deterministic-vs-probabilistic-text-to-sql&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>sql</category>
      <category>llm</category>
      <category>database</category>
    </item>
    <item>
      <title>From Copilots to Autonomous Companies: Building AI-Native Operations</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Thu, 13 Aug 2026 17:55:19 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/from-copilots-to-autonomous-companies-building-ai-native-operations-no5</link>
      <guid>https://dev.to/mudgal_mayank/from-copilots-to-autonomous-companies-building-ai-native-operations-no5</guid>
      <description>&lt;p&gt;A copilot that's wrong 5% of the time is a productivity tool.&lt;/p&gt;

&lt;p&gt;A system that acts on its own and is wrong 5% of the time is a liability.&lt;/p&gt;

&lt;h2&gt;
  
  
  That single distinction explains the plateau
&lt;/h2&gt;

&lt;p&gt;Most enterprises are stuck at copilot, and it isn't a capability problem. The human in the loop isn't there for speed — they're there to absorb the error rate.&lt;/p&gt;

&lt;p&gt;Remove them and the error rate has to be &lt;em&gt;structurally&lt;/em&gt; controlled, not statistically improved.&lt;/p&gt;

&lt;h2&gt;
  
  
  What autonomy actually requires
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Copilot&lt;/th&gt;
&lt;th&gt;Autonomous&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Wrong answers&lt;/td&gt;
&lt;td&gt;Caught by the user&lt;/td&gt;
&lt;td&gt;Must be impossible, not unlikely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ambiguity&lt;/td&gt;
&lt;td&gt;User clarifies&lt;/td&gt;
&lt;td&gt;System must refuse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authorisation&lt;/td&gt;
&lt;td&gt;User's own session&lt;/td&gt;
&lt;td&gt;Proven per action, per identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Traceability&lt;/td&gt;
&lt;td&gt;Rarely needed&lt;/td&gt;
&lt;td&gt;Every action, reproducible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure mode&lt;/td&gt;
&lt;td&gt;Annoying&lt;/td&gt;
&lt;td&gt;Reportable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The second row is the one teams underestimate. A system that guesses when uncertain is fine with a human reviewing it and unacceptable without one. Refusal has to be a first-class outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Probabilistic systems can't offer this
&lt;/h2&gt;

&lt;p&gt;Sampling produces variance. Variance in a draft email is fine; variance in a ledger entry is a finding. You cannot get to structural correctness by tuning temperature — the guarantee has to come from architecture.&lt;/p&gt;

&lt;p&gt;A compiled path can offer it: intent resolved against a typed graph, join path proven or compilation failed, policy injected before execution, audit emitted automatically. The query either satisfies every constraint or it doesn't run.&lt;/p&gt;

&lt;h2&gt;
  
  
  The actual path
&lt;/h2&gt;

&lt;p&gt;Not a better model. A layer that makes being wrong &lt;em&gt;impossible&lt;/em&gt; rather than &lt;em&gt;improbable&lt;/em&gt; — and then removing the human from the loop becomes a decision rather than a gamble.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the operating model shift, what changes organisationally, and the architecture that supports it — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/from-copilots-to-autonomous-companies-ai-native-operations/" rel="noopener noreferrer"&gt;From Copilots to Autonomous Companies: Building AI-Native Operations&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/from-copilots-to-autonomous-companies-ai-native-operations/" rel="noopener noreferrer"&gt;colrows.com/blogs/from-copilots-to-autonomous-companies-ai-native-operations&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dataengineering</category>
      <category>architecture</category>
      <category>datascience</category>
    </item>
    <item>
      <title>The Best Semantic Layer for AI Agents in 2026: A Buyer's Guide</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Tue, 11 Aug 2026 15:42:04 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/the-best-semantic-layer-for-ai-agents-in-2026-a-buyers-guide-33k0</link>
      <guid>https://dev.to/mudgal_mayank/the-best-semantic-layer-for-ai-agents-in-2026-a-buyers-guide-33k0</guid>
      <description>&lt;p&gt;Gartner expects 70% of enterprises to deploy a semantic layer by 2027. The debate about &lt;em&gt;whether&lt;/em&gt; is over.&lt;/p&gt;

&lt;p&gt;The sharper reality: most will pick the wrong architecture, and won't find out for eighteen months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three structural categories
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Warehouse-native&lt;/th&gt;
&lt;th&gt;Tool-centric&lt;/th&gt;
&lt;th&gt;Cross-estate substrate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Examples&lt;/td&gt;
&lt;td&gt;Snowflake Semantic Views, Databricks Metric Views&lt;/td&gt;
&lt;td&gt;LookML, dbt, Cube&lt;/td&gt;
&lt;td&gt;Compiled semantic layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;One platform&lt;/td&gt;
&lt;td&gt;One BI ecosystem&lt;/td&gt;
&lt;td&gt;Whole estate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modelling&lt;/td&gt;
&lt;td&gt;Hand-authored&lt;/td&gt;
&lt;td&gt;Hand-authored&lt;/td&gt;
&lt;td&gt;Generated + confirmed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance&lt;/td&gt;
&lt;td&gt;Platform-native&lt;/td&gt;
&lt;td&gt;Around the tool&lt;/td&gt;
&lt;td&gt;Compiled into every query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent-ready&lt;/td&gt;
&lt;td&gt;Within the platform&lt;/td&gt;
&lt;td&gt;Within modelled metrics&lt;/td&gt;
&lt;td&gt;Arbitrary intent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Picking between these isn't a routine tooling upgrade. It's a fork that determines what your AI roadmap can do for the next five years.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four questions that separate a 2026 buyer from a 2021 buyer
&lt;/h2&gt;

&lt;p&gt;A 2021 buyer asked about dashboard consistency, modelling language, performance and cost. Those still matter. These four decide the outcome now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can it answer a question nobody modelled in advance?&lt;/li&gt;
&lt;li&gt;Is the join path &lt;strong&gt;proven&lt;/strong&gt;, or ranked?&lt;/li&gt;
&lt;li&gt;Is entitlement enforced &lt;strong&gt;before&lt;/strong&gt; execution, per person?&lt;/li&gt;
&lt;li&gt;Can you reproduce a specific answer six months later with the definitions then in force?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why "almost right" is expensive
&lt;/h2&gt;

&lt;p&gt;Eighteen months into the wrong architecture you have definitions, dashboards, trained users and integrations built on it — and the limitation you hit is structural, not a missing feature. There's no upgrade path from "designed for known questions" to "handles arbitrary intent."&lt;/p&gt;

&lt;p&gt;That asymmetry is the real argument for evaluating on the four questions above rather than on feature parity.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full buyer's guide&lt;/strong&gt; — the 12-point evaluation framework, how each category scores, and how to run the evaluation in practice — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/guides/best-semantic-layer-for-ai-agents-2026/" rel="noopener noreferrer"&gt;The Best Semantic Layer for AI Agents in 2026: A Buyer's Guide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/guides/best-semantic-layer-for-ai-agents-2026/" rel="noopener noreferrer"&gt;colrows.com/guides/best-semantic-layer-for-ai-agents-2026&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>database</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>How to Build an MCP Semantic Layer Server (Architecture, Code, and the No-Rip-and-Replace Case)</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Thu, 06 Aug 2026 13:44:30 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/how-to-build-an-mcp-semantic-layer-server-architecture-code-and-the-no-rip-and-replace-case-3pje</link>
      <guid>https://dev.to/mudgal_mayank/how-to-build-an-mcp-semantic-layer-server-architecture-code-and-the-no-rip-and-replace-case-3pje</guid>
      <description>&lt;p&gt;3 agent frameworks. 4 data sources. 12 brittle connectors.&lt;/p&gt;

&lt;p&gt;Then someone renames a column and three agents break at once. MCP fixes the wiring — but the wiring was the easy part.&lt;/p&gt;

&lt;h2&gt;
  
  
  What an MCP semantic layer server actually exposes
&lt;/h2&gt;

&lt;p&gt;The design decision is what your tool surface represents. Expose tables and every agent infers meaning independently. Expose &lt;em&gt;semantics&lt;/em&gt; and they all compile through the same graph.&lt;/p&gt;

&lt;p&gt;A governed server exposes something closer to:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Returns&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list_concepts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Typed entities and metrics the caller may see&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;describe_concept&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Definition, grain, filters, allowed dimensions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;resolve_intent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A typed plan — or a refusal with the reason&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;execute&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Governed result + the SQL + predicates applied&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice there's no &lt;code&gt;run_sql&lt;/code&gt;. That's deliberate — the moment you expose arbitrary SQL execution, every governance guarantee becomes advisory.&lt;/p&gt;

&lt;h2&gt;
  
  
  The request path
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Intent → context resolution → constrained planning → governed execution.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent sends intent plus caller identity&lt;/li&gt;
&lt;li&gt;Server resolves concepts against the versioned semantic graph&lt;/li&gt;
&lt;li&gt;Planner proves a join path — no path, compilation fails&lt;/li&gt;
&lt;li&gt;RBAC and ABAC predicates injected for that identity&lt;/li&gt;
&lt;li&gt;Dialect-perfect SQL emitted and executed&lt;/li&gt;
&lt;li&gt;Result returned with lineage and an audit record&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The no-rip-and-replace part
&lt;/h2&gt;

&lt;p&gt;This sits &lt;em&gt;above&lt;/em&gt; your warehouse, not instead of it. Snowflake, Databricks, BigQuery and Postgres stay where they are; the layer reads your existing catalogs and BI models to build the graph, then compiles down to each engine's dialect.&lt;/p&gt;

&lt;p&gt;The most common objection is migration fatigue — teams have spent millions consolidating and won't move again. They don't have to. Additive layers are the only ones that get deployed.&lt;/p&gt;

&lt;p&gt;And because MCP and REST can front the same compiled core, switching protocols later never means re-proving your governance.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the full architecture, code for the server, the tool schemas, and the integration path — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/mcp-semantic-layer-integration/" rel="noopener noreferrer"&gt;How to Build an MCP Semantic Layer Server (Architecture, Code, and the No-Rip-and-Replace Case)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/mcp-semantic-layer-integration/" rel="noopener noreferrer"&gt;colrows.com/blogs/mcp-semantic-layer-integration&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>architecture</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Company Brain for Enterprise AI: Why the Data Layer Decides Everything</title>
      <dc:creator>Mayank Mudgal</dc:creator>
      <pubDate>Tue, 04 Aug 2026 14:58:12 +0000</pubDate>
      <link>https://dev.to/mudgal_mayank/company-brain-for-enterprise-ai-why-the-data-layer-decides-everything-53d0</link>
      <guid>https://dev.to/mudgal_mayank/company-brain-for-enterprise-ai-why-the-data-layer-decides-everything-53d0</guid>
      <description>&lt;p&gt;When your best people leave, everything they knew leaves with them. The pricing exceptions. The churn playbook. Why Q3 really dipped.&lt;/p&gt;

&lt;p&gt;What's left is scattered across wikis, chat threads and half-remembered decisions — and now you're pointing an LLM at it and asking for answers you can act on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part everyone skips
&lt;/h2&gt;

&lt;p&gt;Almost every company brain being built right now is retrieval. Index the documents, embed them, search them, feed the chunks to a model.&lt;/p&gt;

&lt;p&gt;That answers &lt;em&gt;"what did we say about X?"&lt;/em&gt; It cannot answer &lt;em&gt;"what is true about X, right now, for the person asking?"&lt;/em&gt; — because a document chunk has no schema, no grain, and no idea who's allowed to see it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrieval vs execution
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Retrieval-based brain&lt;/th&gt;
&lt;th&gt;Execution-based brain&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Answers&lt;/td&gt;
&lt;td&gt;What a document said&lt;/td&gt;
&lt;td&gt;What the data currently shows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source of truth&lt;/td&gt;
&lt;td&gt;Text chunks&lt;/td&gt;
&lt;td&gt;Typed semantic graph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Joins&lt;/td&gt;
&lt;td&gt;Not applicable&lt;/td&gt;
&lt;td&gt;Proven before the query runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permissions&lt;/td&gt;
&lt;td&gt;Flattened at ingest&lt;/td&gt;
&lt;td&gt;Compiled per person, per query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same question twice&lt;/td&gt;
&lt;td&gt;May differ&lt;/td&gt;
&lt;td&gt;Identical by construction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auditable&lt;/td&gt;
&lt;td&gt;Cites a document&lt;/td&gt;
&lt;td&gt;Reproduces the exact SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why this bites in production
&lt;/h2&gt;

&lt;p&gt;Three failure modes appear around month three, and none are fixed by better retrieval:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permission flattening.&lt;/strong&gt; The index ingests everything, then reconstructs entitlement at query time. Two people ask the same question and get the same answer — a breach, not a feature.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silent contradiction.&lt;/strong&gt; Two documents disagree about how churn is defined. Retrieval returns whichever ranked higher. Nobody is told there was a conflict.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confident staleness.&lt;/strong&gt; The source changed; the embedding didn't. The answer is fluent, sourced, and wrong.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What closes the gap
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Entities, metrics and relationships &lt;strong&gt;typed and versioned&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;proven join path&lt;/strong&gt; — no valid path, no query&lt;/li&gt;
&lt;li&gt;Access policy &lt;strong&gt;compiled into the SQL&lt;/strong&gt;, before data moves&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;audit trail&lt;/strong&gt; that reproduces an answer months later&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The model isn't the bottleneck. The context it runs on is.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the architecture in detail, what it looked like in production at Cipla (8× data adoption, &amp;gt;90% lower decision latency, 80% fewer IT report requests), where Colrows fits and where it doesn't, and what it costs — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/company-brain-for-enterprise-ai/" rel="noopener noreferrer"&gt;Company Brain for Enterprise AI: Why the Data Layer Decides Everything&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/company-brain-for-enterprise-ai/" rel="noopener noreferrer"&gt;colrows.com/blogs/company-brain-for-enterprise-ai&lt;/a&gt;&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;title: "Company Brain for Enterprise AI: Why the Data Layer Decides Everything"&lt;br&gt;
published: false&lt;br&gt;
description: "A company brain turns fragmented knowledge into a governed layer AI can act on. Why the data-semantics pillar decides if your agents are trustworthy."&lt;br&gt;
tags: ai, rag, architecture, dataengineering&lt;br&gt;
series: "The Company Brain"&lt;br&gt;
cover_image: &lt;a href="https://colrows.com/assets/images/devto/company-brain-for-enterprise-ai.png" rel="noopener noreferrer"&gt;https://colrows.com/assets/images/devto/company-brain-for-enterprise-ai.png&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  canonical_url: &lt;a href="https://colrows.com/blogs/company-brain-for-enterprise-ai/" rel="noopener noreferrer"&gt;https://colrows.com/blogs/company-brain-for-enterprise-ai/&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;When your best people leave, everything they knew leaves with them. The pricing exceptions. The churn playbook. Why Q3 really dipped.&lt;/p&gt;

&lt;p&gt;What's left is scattered across wikis, chat threads and half-remembered decisions — and now you're pointing an LLM at it and asking for answers you can act on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part everyone skips
&lt;/h2&gt;

&lt;p&gt;Almost every company brain being built right now is retrieval. Index the documents, embed them, search them, feed the chunks to a model.&lt;/p&gt;

&lt;p&gt;That answers &lt;em&gt;"what did we say about X?"&lt;/em&gt; It cannot answer &lt;em&gt;"what is true about X, right now, for the person asking?"&lt;/em&gt; — because a document chunk has no schema, no grain, and no idea who's allowed to see it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrieval vs execution
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Retrieval-based brain&lt;/th&gt;
&lt;th&gt;Execution-based brain&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Answers&lt;/td&gt;
&lt;td&gt;What a document said&lt;/td&gt;
&lt;td&gt;What the data currently shows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source of truth&lt;/td&gt;
&lt;td&gt;Text chunks&lt;/td&gt;
&lt;td&gt;Typed semantic graph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Joins&lt;/td&gt;
&lt;td&gt;Not applicable&lt;/td&gt;
&lt;td&gt;Proven before the query runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permissions&lt;/td&gt;
&lt;td&gt;Flattened at ingest&lt;/td&gt;
&lt;td&gt;Compiled per person, per query&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same question twice&lt;/td&gt;
&lt;td&gt;May differ&lt;/td&gt;
&lt;td&gt;Identical by construction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auditable&lt;/td&gt;
&lt;td&gt;Cites a document&lt;/td&gt;
&lt;td&gt;Reproduces the exact SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why this bites in production
&lt;/h2&gt;

&lt;p&gt;Three failure modes appear around month three, and none are fixed by better retrieval:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permission flattening.&lt;/strong&gt; The index ingests everything, then reconstructs entitlement at query time. Two people ask the same question and get the same answer — a breach, not a feature.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silent contradiction.&lt;/strong&gt; Two documents disagree about how churn is defined. Retrieval returns whichever ranked higher. Nobody is told there was a conflict.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confident staleness.&lt;/strong&gt; The source changed; the embedding didn't. The answer is fluent, sourced, and wrong.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What closes the gap
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Entities, metrics and relationships &lt;strong&gt;typed and versioned&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;proven join path&lt;/strong&gt; — no valid path, no query&lt;/li&gt;
&lt;li&gt;Access policy &lt;strong&gt;compiled into the SQL&lt;/strong&gt;, before data moves&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;audit trail&lt;/strong&gt; that reproduces an answer months later&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The model isn't the bottleneck. The context it runs on is.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The full breakdown&lt;/strong&gt; — the architecture in detail, what it looked like in production at Cipla (8× data adoption, &amp;gt;90% lower decision latency, 80% fewer IT report requests), where Colrows fits and where it doesn't, and what it costs — is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://colrows.com/blogs/company-brain-for-enterprise-ai/" rel="noopener noreferrer"&gt;Company Brain for Enterprise AI: Why the Data Layer Decides Everything&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://colrows.com/blogs/company-brain-for-enterprise-ai/" rel="noopener noreferrer"&gt;colrows.com/blogs/company-brain-for-enterprise-ai&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>architecture</category>
      <category>dataengineering</category>
    </item>
  </channel>
</rss>
