Skip to main content
Skip to content

The year our connectors stopped depending on who was online

01 Before this year

Every Connector Had Its Experts .

Until this year, every connector we ran was tied to the specialists who knew it. A change to a connector waited for one of those engineers to be free, and every new connector we shipped made the fleet bigger without making anyone freer, which kept us on a hamster wheel.

Coding agents had not changed that. Our engineers already had them open on their laptops, each getting faster at the connectors they knew, but what any one of them learnt stayed where they learnt it, and a faster engineer is still only one engineer. Our bottleneck was where our knowledge lived: in a few people’s heads, on their laptops, and on dashboards that only they watched.

So at the start of the year we committed to working agentically across every part of how we build software, from the first line of a specification to the release, as part of Atlan’s wider effort to become a frontier company in the open. The first plan, in March, was deliberately cautious: run the agentic flow end to end on a few connectors before deciding how to organise everything else around it.

Getting this right mattered well beyond our own team, because of what connectors feed. Every AI agent an enterprise runs is only as good as the context it reads, and every platform builds that context for its own ecosystem, leaving a business with islands instead of one layer it can trust. Atlan’s bet is the neutral one: a single context layer across every system a business runs, where metadata, semantics, lineage and business knowledge come together for people and agents alike.

That layer does not come from a prompt. It comes from a pipeline, and the pipeline is made of connectors.

A diagram of the AI context layer: systems of record, data, knowledge, work and runtime signals are mined into a context substrate of knowledge graph, semantics and skills, then activated through search, APIs, SQL and MCP for copilots, agents and apps.
Connectors power the context mining on the left: everything to their right is only as fresh as they are. Read more here.

Every connector runs as a workflow that reaches into a source, extracts its metadata and publishes it into the customer’s context layer. Each of those runs is a crawl. A connector that feeds a context layer carries far more than table names. Moving data only needs the rows; a context layer needs to know what they mean and where they came from. We run them across warehouses, databases, BI, ETL, streaming and ERP, for some of the largest banks, retailers, healthcare systems and manufacturers in the world.

When a connector fails, the context layer becomes confidently wrong, and a person or an agent acts on metadata that is no longer true. So the hard problem is keeping every connector true, on sources that change every week. That is the Connectivity team’s job, for every connector it builds.

Looking back, our own team had the same shape as the problem we were feeding. We had islands of knowledge, each trusted by the person who held it, and no single layer that anyone else, person or agent, could read. This year we started building that layer for ourselves: first by creating one picture of the fleet, then by setting rules for every connector, and lastly by building agents to create those connectors.

02 Swapping the workflow engine

Changing the Engine Without Stopping the Car .

The first large job we handed to agents touched every connector at once. For years our connector workflows ran on Argo, which our architecture now lists as the legacy path. A workflow engine is what schedules each crawl, retries a step that fails and keeps track of where every run got to. Moving to Temporal had been planned for a while, because Argo ran every step of a workflow as its own container, while Temporal lets us break a workflow into activities, units of work whose boundaries we choose and which are retried and resumed on their own. That gave us control over how a workflow is designed, not just how it runs.

Agents did the rewriting under one absolute rule: every capability a connector had on the old engine had to exist in the rewrite. The rewritten connectors run in production today, and we saw runtimes improve across the fleet. On comparable runs on both engines, Power BI ran nearly five times faster and Tableau more than twice as fast. The gains came from both the engine swap and the finer control it gave us over how each workflow is designed.

A bar chart of how much faster the same workflows run on Temporal than on Argo: Snowflake 4.7x, Tableau 2.6x, Power BI 4.8x, Databricks 3.1x, BigQuery 4.4x. Representative figures, not a guarantee.
The same workflows on the same connections, timed on Argo and on Temporal. These are representative runs: runtime also depends on the source system and on how much changed since the last run.

This move was ultimately about more reliable workflows and shorter runtimes. Fresher context followed, because a crawl that fails less often and finishes sooner catches up with its source sooner.

The migration also made our islands impossible to ignore. With every connector moving engines in stages, and both engines live at once, the answer to “which build is running where?” was spread across the engineers who owned each connector, and nobody could see it in one place.

03 Understanding the fleet

One Place to See the Fleet .

That question is how knowledge first started to leave individual heads. Connector Pulse had been our team dashboard, built entirely by AI, where we tracked workflow success, time to resolve support tickets and how much of the work AI was doing. To answer which build is running where, we added a view that showed every deployment across the fleet, connector by connector, and Pulse started growing into something bigger than we had planned.

A Slack message from Mrun, 6 May at 12:35 PM: "Shipped a dashboard to track app migration progress:", with a link whose host is blurred, then a request to pull up each app, sanity-check the data and flag anything off. A "Code:" link follows with its repository name blurred, plus two attached dashboard screenshots.
6 May: the Argo-to-Temporal migration view goes live, showing where each connector’s builds were deployed across the fleet. Atlan’s own Slack · May 2026

That single picture mattered beyond the migration. Each limit we hit on the way forced the next evolution of Pulse.

Fleet health followed: runs, successes and failures across every connector and tenant (each customer’s own Atlan instance) in one place. It showed us that a fleet-wide success rate, on its own, cannot tell us what to do.

The same number
Ten failures landing on one customer is one unhappy account. The same ten spread one per customer across ten of them is a fleet-wide pattern. The number is the same, and the response is the opposite.

Sliceable health answered that: health per customer, per connection, per failure pattern, so a number always came with who it was landing on.

Views on demand went further. A slice answers a question we already knew to ask. When a question came up that no existing view covered, the view itself could be created the same afternoon, because no person had to hand-build it.

Take the migration itself: proving the new engine was faster meant timing both engines for every connector, down to each activity in each step. Nobody had planned that view. We built it with agents in two days.

Agent access over MCP came next. MCP, the Model Context Protocol, is an open standard that lets an AI agent read from a tool directly. With it, the agents working the fleet and the people reading it pull from one source. This is the context-layer argument at the scale of one team: one picture of the fleet, read by everyone who works on it, where before each engineer had their own.

A board of team metrics became the surface the fleet is run from.

The lesson
Visibility comes before reliability. At fleet scale you cannot improve what you cannot see in one place.
An illustrative Connector Pulse view for Snowflake over 12 to 18 October 2026, marked not production data: 6,042 runs, 99.60% success, 24 failures, a daily success-rate line dipping to 99.2% on the Thursday, and the failures split into source unreachable 13, credentials expired 8 and Atlan bug 3.
An illustrative Connector Pulse view for one connector over a week: total runs, success rate, the daily trend, and every failure typed by cause and owner. Rebuilt with synthetic data.
04 Fixes into rules

A Fix Is Spent, a Rule Keeps Paying .

Once there was one picture, the failures in it started to look familiar. For the first time, we could see the same failure twice. Before Pulse covered the whole fleet, we had separate team dashboards, each watched by the engineer who knew that connector, so a shape repeating across two connectors was never in one place to be seen. The unit of work was whatever sat in front of us: one failure, one expert, one fix, and the understanding ending inside that person.

When we could see the whole fleet, the natural unit became the class. We stopped asking why this crawl failed and started asking how many customers this shape of failure was landing on, and what they had in common. Each fix became a candidate for a rule, and the understanding behind it had somewhere to go other than one engineer’s memory.

That is where it starts compounding. Every connector is built on the Connector SDK, our internal toolkit for building applications on the Atlan platform. A fix is spent the moment it is applied. A rule written into the SDK keeps paying: on every connector it touches, on every tenant it has not reached, and on connectors nobody has built yet.

Even turning fixes into rules is no longer down to us alone. Periodically, an agent reviews the fixes merged across all our connectors and, when a pattern could affect the rest of the fleet, opens a pull request that writes it into the Connector SDK as a conformance rule. An AI reviewer checks it first, then an engineer decides whether it should exist at all. We keep that step human on purpose: a wrong rule would push wrong fixes into every connector it touches.

Once a rule merges, every connector is checked against it, including the ones we haven’t built yet, and agents fix the violations they find, most of them merging on their own.

A two-part diagram, "A fix spends effort. A rule compounds it." Above: one failure, one expert, one fix on one connector, ending at effort spent. Below: repeated failures become one pattern, then one rule in the connector SDK, reaching the connectors it touches, tenants it has not reached, and connectors nobody has built yet.
Where a fix stops and where a rule compounds.

Since what we know now lives in the SDK, a connector nobody has built yet will be able to start with all of it.

05 Building a new connector

From a One-Line Ticket to a Connector .

Rebuilding connectors that already worked was the first test. A source nobody had connected was a harder one, and the clearest check on how much of what we know now lives somewhere an agent can read it.

In June, we filed a ticket with a title and nothing else: Build SAP Datasphere connector. The agent it was assigned to broke the work into thirteen steps, wrote a specification with 108 traceable requirements, then tested it against a live instance and found 22 of its own assumptions wrong, from field names to which endpoints exist. It stopped three times for an engineer to make a call, and by the next afternoon the connector was built, crawled, tested and waiting for review, work that used to take us weeks. It is now in public preview, and a model a business user works from traces back through Datasphere to the S/4HANA table the data came from.

What the agent had to get right was how an enterprise source really behaves. It also had to fit the source into the asset model every other connector already speaks, the shared vocabulary for what a connector finds, such as tables, columns and dashboards. That fit is what lets the new connector’s lineage join up with the systems around it. The agent did not start from a blank page: it built on the Connector SDK and asset models refined across every connector we have built, which is years of what our engineers knew, written down where an agent could use it.

Its three stops show how we split the work. The agent settled anything it could check against the documentation, the live source or a test. It stopped for the calls only a person should make: what the connector is for, which objects matter, and how its assets should be modelled. The shared layer holds what we have learnt, and deciding what a connector should be stays with people.

This was not a one-off. In September, three new capabilities on our Fabric connector (semantic-model measures, Dataflow lineage and Spark lineage) went from request to release in about a week, built by engineers working with agents, in time to be announced at Microsoft’s FabCon Europe.

Building was one half of the job. The other half was noticing what breaks, and that had always started with someone else telling us.

06 Beyond the ticket

We Stopped Waiting for the Customer Ticket .

Before this year, failure triage started with a customer ticket, which meant the first person to know a connector had broken was usually the customer. Now, while the team sleeps, the daily sweep agent reads every failure the fleet produced, often before a customer notices one.

Pulse changed where the work starts. Every failure across the fleet now lands in one snapshot, and a growing number of agents, built on LangGraph, work from it:

· One that writes up the day’s failures each morning, with one ticket per distinct fault

· One that confirms whether a new release really caused the failures an alert reports

· An agent that takes a support ticket to a root cause and a fix

· One that turns a customer request for a new capability into tested changes

· An agent that watches run times and finds which step is slowing a connector down

These agentic loops also let us get ahead of some breaks. Sources usually announce a new API, a deprecated one or a change to how authentication works in advance, so we actively watch for those notices and fix a connector before it breaks.

The Pattern Analysis Agent view in Connector Pulse: a funnel reading 31 failed, 21 ticketed, 14 agent ran, 14 RCA found, 8 fix PR, 5 merged, above three failure patterns with their labels, connectors, pull requests and counts. Team names, ticket IDs and tenant names are blurred.
Each day’s failures, grouped into patterns: which connectors each one hits, how often, and the fixes the agents opened. Labels such as rca-found and fix-built record how far the agents got on each one. Atlan’s own Connector Pulse · October 2026
07 Where we went wrong

We Misread Our Own System .

More than once this year, we misread our system. The times that cost us most were both about what we had given the agents to work from: once a premise nobody had checked, and once far more context than they needed.

We thought two agents agreeing meant the answer was right. A support ticket arrived with a lead in it, pointing at the wrong code. The investigating agent started from that lead; so did the second agent we run to check the first one blind. They agreed, the reviewer agent passed it, and the fix was written for the old engine, which that connector had already left. An engineer caught it, and it took no special knowledge: which engine a connector runs on is one of the first things Pulse shows. Two agents reading the same wrong premise had given us one opinion twice. By the next morning we were stripping leads like that from tickets, and the support agent now checks the engine before anything else.

We spent a month’s budget in a week, almost all of it on re-sending context. By the first week of August, our agents had spent more than in all of July. We first blamed a model switch, but about 94% of the spend was re-sending context: every turn sent back everything the agent running the job had done so far. On one ticket that reached half a million tokens, and a crash meant paying to rebuild it just to find its place.

So we took the running of the job away from the model, and that is why every agent graph we run now works the same way. An investigation is a series of steps, where code decides which step runs next. Some steps are plain scripts with no model at all, others get a small model or the strongest one, and each has its own budget of turns and spend. A fresh agent sees only what its step needs.

That week, we also turned Pulse onto the agents themselves. Pulse now has a section that tracks what each agent worked on, how its runs ended (including when it handed a ticket to a person) and what it cost, by graph and by ticket. Any agent the team runs is meant to be tracked there, in the same place as the fleet it works on.

The graph costs view in Connector Pulse: two agent graphs over seven days, application-rca-solo at 353.97$ and asset-enhancement-solo at 25.60$, each with a daily spend chart, a run count, spend by board and its costliest runs. Board names and run IDs are blurred.
One view from that section: what each agent graph costs, day by day. Scoped to a subset of connectors, not the whole fleet. Atlan’s own Connector Pulse · October 2026
08 Still unsolved

What We’re Still Working On .

What we’ve built is still far from finished. What is left is mostly about what it still cannot see, and what happens when it is wrong.

Giving every issue an identity. Whether an issue comes from the daily sweep or from a customer, the graph first pins down what actually happened: the connector, the connection, the run and the failure, each traced to the system of record. That matters most for a customer’s ticket, which describes what they saw, and that isn’t always what happened. When a field is missing, the graph stops rather than guesses, which is the standard we hold the context layer to. It works for workflow failures. Lineage is harder, because a wrong edge fails nothing, so there is no failure to start from, only an agent downstream that trusts it.

From a right diagnosis to a right fix. A graph can get the diagnosis right and still get the fix wrong. In one case, a graph correctly worked out that a process had been killed for running out of memory, then proposed a fix that changed nothing about memory. Graphs fail most on connectors that do not follow the Connector SDK’s conventions, or whose details the graph was given wrong. So when a fix misses, we close the gap in the graph itself rather than in that one ticket. The graphs are starting to heal themselves: a second agent re-investigates every finished run blind and scores it. A run that scores badly becomes a change to the graph. It is early, and so far each miss is making the next diagnosis on that kind of failure more reliable.

Guardrails for a loop that feeds itself. This is the open problem we think about most. Agents write fixes and check every merged fix to decide which ones become rules, so the loop makes its own next task. The shared layer that lets one good rule reach every connector would carry a wrong one just as far into everything built on it, including connectors we have not built yet. It is the problem we started with, a context layer that is confidently wrong, turned on our own system. Before agents run more of that loop on their own, we are building the checks that catch a wrong rule first.

09 What changed

Where the Knowledge Lives Now .

From where we started, the Connectivity team has reinvented itself more this year than in the several before.

Two key things have moved: knowledge and judgement. What an engineer knew about a connector used to live in their head. Now it is built into the Connector SDK, into Pulse, and into specialised agents that work across every connector, and a new source can go from an empty ticket to review in about a day. Judgement also moved earlier: people now decide what a connector should be, and agents do the building.

What changed
Writing a connector is no longer the hard part. Knowing what a source really means, and noticing the day it changes, is what keeps an enterprise’s agents from working off yesterday’s truth.
The Connectivity team's agents and what starts each one, from a daily failure sweep to conformance checkers always watching, beside a five-step loop around what the agents know: signals land, pattern analysis, fix or enhancement, rule or app fix, rules reach apps.
Where the loop stands today. Illustrative; it changes as we learn what works.

The layer we built for ourselves this year is a small version of the one our customers are building across their whole business, and it taught us the same lessons up close. Knowledge compounds once it lives somewhere everyone can read it, and a shared layer earns trust again every day it is used. Our next step is a loop that can carry more of the work on its own, once the checks are in place that let us trust it to.

The stakes
Every connector we keep true makes our customers' context layer a little more trustworthy for the people and agents who rely on it.
3,267 words · end
Written by Mrunmayi Tripathi & Samanvitha Kumar Connectivity Engineering · Atlan

Atlan’s Connectivity team builds and runs the connectors that carry context from each customer’s systems into Atlan’s context layer. Samanvitha Kumar is Director of Engineering, and Mrunmayi Tripathi leads the team’s AI charter.

Every connector was tied to the specialists who knew it. How Atlan’s Connectivity team moved that knowledge into one layer people and agents can both read, and what we learned on the way. By Mrunmayi Tripathi and Samanvitha Kumar.

Every Connector Had Its Experts

Until this year, every connector we ran was tied to the specialists who knew it. A change to a connector waited for one of those engineers to be free, and every new connector we shipped made the fleet bigger without making anyone freer, which kept us on a hamster wheel.

Coding agents had not changed that. Our engineers already had them open on their laptops, each getting faster at the connectors they knew, but what any one of them learnt stayed where they learnt it, and a faster engineer is still only one engineer. Our bottleneck was where our knowledge lived: in a few people’s heads, on their laptops, and on dashboards that only they watched.

So at the start of the year we committed to working agentically across every part of how we build software, from the first line of a specification to the release, as part of Atlan’s wider effort to become a frontier company in the open. The first plan, in March, was deliberately cautious: run the agentic flow end to end on a few connectors before deciding how to organise everything else around it.

Getting this right mattered well beyond our own team, because of what connectors feed. Every AI agent an enterprise runs is only as good as the context it reads, and every platform builds that context for its own ecosystem, leaving a business with islands instead of one layer it can trust. Atlan’s bet is the neutral one: a single context layer across every system a business runs, where metadata, semantics, lineage and business knowledge come together for people and agents alike.

That layer does not come from a prompt. It comes from a pipeline, and the pipeline is made of connectors.

A diagram of the AI context layer: systems of record, data, knowledge, work and runtime signals are mined into a context substrate of knowledge graph, semantics and skills, then activated through search, APIs, SQL and MCP for copilots, agents and apps.

Connectors power the context mining on the left: everything to their right is only as fresh as they are. Read more here.

Every connector runs as a workflow that reaches into a source, extracts its metadata and publishes it into the customer’s context layer. Each of those runs is a crawl. A connector that feeds a context layer carries far more than table names. Moving data only needs the rows; a context layer needs to know what they mean and where they came from. We run them across warehouses, databases, BI, ETL, streaming and ERP, for some of the largest banks, retailers, healthcare systems and manufacturers in the world.

When a connector fails, the context layer becomes confidently wrong, and a person or an agent acts on metadata that is no longer true. So the hard problem is keeping every connector true, on sources that change every week. That is the Connectivity team’s job, for every connector it builds.

Looking back, our own team had the same shape as the problem we were feeding. We had islands of knowledge, each trusted by the person who held it, and no single layer that anyone else, person or agent, could read. This year we started building that layer for ourselves: first by creating one picture of the fleet, then by setting rules for every connector, and lastly by building agents to create those connectors.

Changing the Engine Without Stopping the Car

The first large job we handed to agents touched every connector at once. For years our connector workflows ran on Argo, which our architecture now lists as the legacy path. A workflow engine is what schedules each crawl, retries a step that fails and keeps track of where every run got to. Moving to Temporal had been planned for a while, because Argo ran every step of a workflow as its own container, while Temporal lets us break a workflow into activities, units of work whose boundaries we choose and which are retried and resumed on their own. That gave us control over how a workflow is designed, not just how it runs.

Agents did the rewriting under one absolute rule: every capability a connector had on the old engine had to exist in the rewrite. The rewritten connectors run in production today, and we saw runtimes improve across the fleet. On comparable runs on both engines, Power BI ran nearly five times faster and Tableau more than twice as fast. The gains came from both the engine swap and the finer control it gave us over how each workflow is designed.

A bar chart of how much faster the same workflows run on Temporal than on Argo: Snowflake 4.7x, Tableau 2.6x, Power BI 4.8x, Databricks 3.1x, BigQuery 4.4x. Representative figures, not a guarantee.

The same workflows on the same connections, timed on Argo and on Temporal. These are representative runs: runtime also depends on the source system and on how much changed since the last run.

This move was ultimately about more reliable workflows and shorter runtimes. Fresher context followed, because a crawl that fails less often and finishes sooner catches up with its source sooner.

The migration also made our islands impossible to ignore. With every connector moving engines in stages, and both engines live at once, the answer to “which build is running where?” was spread across the engineers who owned each connector, and nobody could see it in one place.

One Place to See the Fleet

That question is how knowledge first started to leave individual heads. Connector Pulse had been our team dashboard, built entirely by AI, where we tracked workflow success, time to resolve support tickets and how much of the work AI was doing. To answer which build is running where, we added a view that showed every deployment across the fleet, connector by connector, and Pulse started growing into something bigger than we had planned.

A Slack message from Mrun, 6 May at 12:35 PM: Shipped a dashboard to track app migration progress, with a link whose host is blurred, then a request to pull up each app, sanity-check the data and flag anything off. A Code link follows with its repository name blurred, plus two attached dashboard screenshots.

6 May: the Argo-to-Temporal migration view goes live, showing where each connector’s builds were deployed across the fleet. Atlan’s own Slack · May 2026

That single picture mattered beyond the migration. Each limit we hit on the way forced the next evolution of Pulse.

Fleet health followed: runs, successes and failures across every connector and tenant (each customer’s own Atlan instance) in one place. It showed us that a fleet-wide success rate, on its own, cannot tell us what to do.

Ten failures landing on one customer is one unhappy account. The same ten spread one per customer across ten of them is a fleet-wide pattern. The number is the same, and the response is the opposite.

Sliceable health answered that: health per customer, per connection, per failure pattern, so a number always came with who it was landing on.

Views on demand went further. A slice answers a question we already knew to ask. When a question came up that no existing view covered, the view itself could be created the same afternoon, because no person had to hand-build it.

Take the migration itself: proving the new engine was faster meant timing both engines for every connector, down to each activity in each step. Nobody had planned that view. We built it with agents in two days.

Agent access over MCP came next. MCP, the Model Context Protocol, is an open standard that lets an AI agent read from a tool directly. With it, the agents working the fleet and the people reading it pull from one source. This is the context-layer argument at the scale of one team: one picture of the fleet, read by everyone who works on it, where before each engineer had their own.

A board of team metrics became the surface the fleet is run from.

Visibility comes before reliability. At fleet scale you cannot improve what you cannot see in one place.

An illustrative Connector Pulse view for Snowflake over 12 to 18 October 2026, marked not production data: 6,042 runs, 99.60% success, 24 failures, a daily success-rate line dipping to 99.2% on the Thursday, and the failures split into source unreachable 13, credentials expired 8 and Atlan bug 3.

An illustrative Connector Pulse view for one connector over a week: total runs, success rate, the daily trend, and every failure typed by cause and owner. Rebuilt with synthetic data.

A Fix Is Spent, a Rule Keeps Paying

Once there was one picture, the failures in it started to look familiar. For the first time, we could see the same failure twice. Before Pulse covered the whole fleet, we had separate team dashboards, each watched by the engineer who knew that connector, so a shape repeating across two connectors was never in one place to be seen. The unit of work was whatever sat in front of us: one failure, one expert, one fix, and the understanding ending inside that person.

When we could see the whole fleet, the natural unit became the class. We stopped asking why this crawl failed and started asking how many customers this shape of failure was landing on, and what they had in common. Each fix became a candidate for a rule, and the understanding behind it had somewhere to go other than one engineer’s memory.

That is where it starts compounding. Every connector is built on the Connector SDK, our internal toolkit for building applications on the Atlan platform. A fix is spent the moment it is applied. A rule written into the SDK keeps paying: on every connector it touches, on every tenant it has not reached, and on connectors nobody has built yet.

Even turning fixes into rules is no longer down to us alone. Periodically, an agent reviews the fixes merged across all our connectors and, when a pattern could affect the rest of the fleet, opens a pull request that writes it into the Connector SDK as a conformance rule. An AI reviewer checks it first, then an engineer decides whether it should exist at all. We keep that step human on purpose: a wrong rule would push wrong fixes into every connector it touches.

Once a rule merges, every connector is checked against it, including the ones we haven’t built yet, and agents fix the violations they find, most of them merging on their own.

A two-part diagram, A fix spends effort. A rule compounds it. Above: one failure, one expert, one fix on one connector, ending at effort spent. Below: repeated failures become one pattern, then one rule in the connector SDK, reaching the connectors it touches, tenants it has not reached, and connectors nobody has built yet.

Where a fix stops and where a rule compounds.

Since what we know now lives in the SDK, a connector nobody has built yet will be able to start with all of it.

From a One-Line Ticket to a Connector

Rebuilding connectors that already worked was the first test. A source nobody had connected was a harder one, and the clearest check on how much of what we know now lives somewhere an agent can read it.

In June, we filed a ticket with a title and nothing else: Build SAP Datasphere connector. The agent it was assigned to broke the work into thirteen steps, wrote a specification with 108 traceable requirements, then tested it against a live instance and found 22 of its own assumptions wrong, from field names to which endpoints exist. It stopped three times for an engineer to make a call, and by the next afternoon the connector was built, crawled, tested and waiting for review, work that used to take us weeks. It is now in public preview, and a model a business user works from traces back through Datasphere to the S/4HANA table the data came from.

What the agent had to get right was how an enterprise source really behaves. It also had to fit the source into the asset model every other connector already speaks, the shared vocabulary for what a connector finds, such as tables, columns and dashboards. That fit is what lets the new connector’s lineage join up with the systems around it. The agent did not start from a blank page: it built on the Connector SDK and asset models refined across every connector we have built, which is years of what our engineers knew, written down where an agent could use it.

Its three stops show how we split the work. The agent settled anything it could check against the documentation, the live source or a test. It stopped for the calls only a person should make: what the connector is for, which objects matter, and how its assets should be modelled. The shared layer holds what we have learnt, and deciding what a connector should be stays with people.

This was not a one-off. In September, three new capabilities on our Fabric connector (semantic-model measures, Dataflow lineage and Spark lineage) went from request to release in about a week, built by engineers working with agents, in time to be announced at Microsoft’s FabCon Europe.

Building was one half of the job. The other half was noticing what breaks, and that had always started with someone else telling us.

We Stopped Waiting for the Customer Ticket

Before this year, failure triage started with a customer ticket, which meant the first person to know a connector had broken was usually the customer. Now, while the team sleeps, the daily sweep agent reads every failure the fleet produced, often before a customer notices one.

Pulse changed where the work starts. Every failure across the fleet now lands in one snapshot, and a growing number of agents, built on LangGraph, work from it:

  • One that writes up the day’s failures each morning, with one ticket per distinct fault
  • One that confirms whether a new release really caused the failures an alert reports
  • An agent that takes a support ticket to a root cause and a fix
  • One that turns a customer request for a new capability into tested changes
  • An agent that watches run times and finds which step is slowing a connector down

These agentic loops also let us get ahead of some breaks. Sources usually announce a new API, a deprecated one or a change to how authentication works in advance, so we actively watch for those notices and fix a connector before it breaks.

The Pattern Analysis Agent view in Connector Pulse: a funnel reading 31 failed, 21 ticketed, 14 agent ran, 14 RCA found, 8 fix PR, 5 merged, above three failure patterns with their labels, connectors, pull requests and counts. Team names, ticket IDs and tenant names are blurred.

Each day’s failures, grouped into patterns: which connectors each one hits, how often, and the fixes the agents opened. Labels such as rca-found and fix-built record how far the agents got on each one. Atlan’s own Connector Pulse · October 2026

We Misread Our Own System

More than once this year, we misread our system. The times that cost us most were both about what we had given the agents to work from: once a premise nobody had checked, and once far more context than they needed.

We thought two agents agreeing meant the answer was right. A support ticket arrived with a lead in it, pointing at the wrong code. The investigating agent started from that lead; so did the second agent we run to check the first one blind. They agreed, the reviewer agent passed it, and the fix was written for the old engine, which that connector had already left. An engineer caught it, and it took no special knowledge: which engine a connector runs on is one of the first things Pulse shows. Two agents reading the same wrong premise had given us one opinion twice. By the next morning we were stripping leads like that from tickets, and the support agent now checks the engine before anything else.

We spent a month’s budget in a week, almost all of it on re-sending context. By the first week of August, our agents had spent more than in all of July. We first blamed a model switch, but about 94% of the spend was re-sending context: every turn sent back everything the agent running the job had done so far. On one ticket that reached half a million tokens, and a crash meant paying to rebuild it just to find its place.

So we took the running of the job away from the model, and that is why every agent graph we run now works the same way. An investigation is a series of steps, where code decides which step runs next. Some steps are plain scripts with no model at all, others get a small model or the strongest one, and each has its own budget of turns and spend. A fresh agent sees only what its step needs.

That week, we also turned Pulse onto the agents themselves. Pulse now has a section that tracks what each agent worked on, how its runs ended (including when it handed a ticket to a person) and what it cost, by graph and by ticket. Any agent the team runs is meant to be tracked there, in the same place as the fleet it works on.

The graph costs view in Connector Pulse: two agent graphs over seven days, application-rca-solo at 353.97$ and asset-enhancement-solo at 25.60$, each with a daily spend chart, a run count, spend by board and its costliest runs. Board names and run IDs are blurred.

One view from that section: what each agent graph costs, day by day. Scoped to a subset of connectors, not the whole fleet. Atlan’s own Connector Pulse · October 2026

What We’re Still Working On

What we’ve built is still far from finished. What is left is mostly about what it still cannot see, and what happens when it is wrong.

Giving every issue an identity. Whether an issue comes from the daily sweep or from a customer, the graph first pins down what actually happened: the connector, the connection, the run and the failure, each traced to the system of record. That matters most for a customer’s ticket, which describes what they saw, and that isn’t always what happened. When a field is missing, the graph stops rather than guesses, which is the standard we hold the context layer to. It works for workflow failures. Lineage is harder, because a wrong edge fails nothing, so there is no failure to start from, only an agent downstream that trusts it.

From a right diagnosis to a right fix. A graph can get the diagnosis right and still get the fix wrong. In one case, a graph correctly worked out that a process had been killed for running out of memory, then proposed a fix that changed nothing about memory. Graphs fail most on connectors that do not follow the Connector SDK’s conventions, or whose details the graph was given wrong. So when a fix misses, we close the gap in the graph itself rather than in that one ticket. The graphs are starting to heal themselves: a second agent re-investigates every finished run blind and scores it. A run that scores badly becomes a change to the graph. It is early, and so far each miss is making the next diagnosis on that kind of failure more reliable.

Guardrails for a loop that feeds itself. This is the open problem we think about most. Agents write fixes and check every merged fix to decide which ones become rules, so the loop makes its own next task. The shared layer that lets one good rule reach every connector would carry a wrong one just as far into everything built on it, including connectors we have not built yet. It is the problem we started with, a context layer that is confidently wrong, turned on our own system. Before agents run more of that loop on their own, we are building the checks that catch a wrong rule first.

Where the Knowledge Lives Now

From where we started, the Connectivity team has reinvented itself more this year than in the several before.

Two key things have moved: knowledge and judgement. What an engineer knew about a connector used to live in their head. Now it is built into the Connector SDK, into Pulse, and into specialised agents that work across every connector, and a new source can go from an empty ticket to review in about a day. Judgement also moved earlier: people now decide what a connector should be, and agents do the building.

Writing a connector is no longer the hard part. Knowing what a source really means, and noticing the day it changes, is what keeps an enterprise’s agents from working off yesterday’s truth.

The Connectivity team's agents and what starts each one, from a daily failure sweep to conformance checkers always watching, beside a five-step loop around what the agents know: signals land, pattern analysis, fix or enhancement, rule or app fix, rules reach apps.

Where the loop stands today. Illustrative; it changes as we learn what works.

The layer we built for ourselves this year is a small version of the one our customers are building across their whole business, and it taught us the same lessons up close. Knowledge compounds once it lives somewhere everyone can read it, and a shared layer earns trust again every day it is used. Our next step is a loop that can carry more of the work on its own, once the checks are in place that let us trust it to.

Every connector we keep true makes our customers’ context layer a little more trustworthy for the people and agents who rely on it.

Becoming FrontierAn open laboratory fromAtlan

Notes from inside the attempt. The record behind this site is real commit history from this lab's own repositories.