6 min read

How to architect an AI-ready data stack: a practical guide for IT leaders

Published Oct 28, 2026
Echo Lu
Echo Lu
AI-ready data stack

An AI-ready data stack is more important than ever. There’s a growing spotlight on where data lives, how it gets there, how often it refreshes, and where quality is enforced.

Everyone in the business now wants to be their own analyst, and AI agents want access to data too. For IT leaders, that raises hard questions about access control, accuracy, and context. 

On the Builder’s Hub podcast, Nate sat down with Ray, Head of Data at Celigo, to talk through how he builds a data stack that holds up under that pressure.

Key takeaways

  • AI makes bad data more expensive.
  • Fix data quality at ingestion. A bad record is cheap to fix when it lands and expensive once it’s baked into decisions.
  • ELT is the sensible default for cloud analytics. Load raw data into the warehouse, then transform it in bronze, silver, and gold layers.
  • Most decisions don’t need real-time data. Ask what decision the data drives, how fast it must be made, and whether anyone can act on it.
  • Start simple: pick a storage layer, set up ingestion at the right frequency, then transform and serve through BI.

Why does AI raise the stakes on data quality?

Celigo’s MIT report found that 93% of enterprise-wide integration users have AI drawing on three or more data sources. Almost any real business question crosses several systems: a CRM like Salesforce, product adoption data, support tickets, billing, and subscriptions.

Now, think about what a bad number used to cost. If someone presented the wrong figure in a meeting, it would lead to momentary confusion and debate. Now, an AI agent can turn that same bad number into a confident recommendation, which gets baked into decisions with downstream consequences.

Nate added a useful distinction. Early generative AI was mostly about language, where some drift is tolerable. Data work involves hard math and real statistics, so confident hallucination is far more dangerous there.

Where should AI sit in the analytics workflow?

According to Ray, AI’s role in the analytics workflow can fall into two categories: 

  • Executives and managers use AI to infer from the context they’ve stored and to weigh decision paths for strategic choices.
  • Engineers and analysts use AI to amplify their work: writing code, building queries, drafting reports, and skipping mundane tasks.

In both cases, the human makes the call. AI can lay out options; the decision maker chooses which path makes sense.

Where should data quality be managed for AI?

Data quality should be managed at the ingestion point, where a bad record is cheapest to catch and fix. The further downstream it travels, the more it costs.

There’s no single definition of data quality. Frameworks list four pillars, five dimensions, or seven, covering completeness, accuracy, consistency, validity, and timeliness. Ray’s practical rule is about where you enforce them.

Here’s how a single bad load spreads:

  1. Bad data lands in the warehouse.
  2. It flows through transformations.
  3. It feeds dashboards and gold-layer aggregates.
  4. People and AI agents make decisions from it.

In the past, the worst case was usually a broken dashboard. But today, with AI scaling decisions across the business, one bad data load can now shift a company’s direction. That’s why ingestion-time validation is no longer a nice-to-have for IT teams supporting AI initiatives.

ETL vs ELT: which is better for an AI-ready data stack?

For most modern cloud analytics, ELT is the better default. The core question is whether you transform data before it lands or after.

ETL (extract, transform, load) ELT (extract, load, transform)
When transformation happens In flight, before loading After loading, inside the warehouse
What lands in the destination Only the final result Raw data first
Compute used The pipeline or integration layer The warehouse’s own compute
Best fit Narrow, stable requirements Large volumes and evolving questions

At Celigo, the data team uses Celigo’s integration platform to load data from business systems like Salesforce, NetSuite, and Gong into Snowflake, then transforms it there. ELT became the default because cloud warehouses got cheap and powerful, so transforming before loading stopped paying off.

Real-time vs batch data integration: when do you need real time?

According to Ray, far fewer decisions need real time than people request. You need real-time data only when an action must be taken immediately based on it. 

Before approving a real-time pipeline, Ray asks three questions:

  1. What decision will this data drive?
  2. How fast does that decision actually need to be made?
  3. Once the decision is made, can anyone act on it right away?

He puts it like this: “If a human looks at something once a day, real-time data is pure cost and zero benefit.” 

Use case Recommended pattern Why
Fraud detection Real time Fraud must be caught during the transaction
Order and inventory sync Real time You can’t sell stock you don’t have
Financial reporting Batch Reviewed on a set schedule
QBR and management metrics Batch Decisions happen over days, not seconds

What does real-time data actually cost?

Real-time data costs more across four areas:

  • Compute: data is processed constantly instead of a few times a day.
  • Storage: data arriving every second adds up, even with cheap storage.
  • Infrastructure complexity: streaming pipelines are harder to build and run.
  • Data correctness: the biggest cost. If your architecture can’t deliver correct data at that speed, you’re paying for real time without being able to use it.

The exact numbers vary by company and stack. For most teams, storage and compute drive the baseline cost of data integration and BI.

How do you architect a data stack that’s ready for AI?

Start with three decisions in order: where your data will live, how and how often it gets there, and how you transform and serve it. This is Ray’s advice to a VP of IT:

  1. Choose your storage layer. Decide where data lands: Snowflake, Databricks, BigQuery, or Postgres. A young company might start on Postgres, since it’s free and capable. As needs grow, move to Snowflake for SQL and BI workloads, then consider Databricks once you’re running ML pipelines.
  2. Set up ingestion at the right frequency. Decide how data gets from source systems into storage. Batch is the simplest place to start: pull from your CRM, ERP, and other core systems on a schedule. Use event listeners or delta flows so you aren’t reprocessing all your data every run.
  3. Transform and build data products. Once data lands reliably, model it into bronze, silver, and gold layers and create reusable data products.
  4. Serve it to BI and AI. Publish gold-layer data to dashboards first, then to AI tools and agents that need trusted context.

Build the foundation before you scale AI

AI doesn’t fix a weak data foundation; it amplifies it. The IT leaders who get real value from AI will be the ones who enforce quality at ingestion, default to ELT with a layered warehouse, match data freshness to real decisions, and partner with the business on what to ingest.

Explore more Builder's Hub podcast episodes

Listen now

How do you architect a data stack that's ready for AI?: full episode transcript

Prefer reading? Here's the complete conversation, with a timestamp for every turn.

Read the full transcriptHide the transcript 24 min episode 3,639 words 2 speakers
  • Nate BriantHost, Builder's Hub Podcast
  • Ray FangHead of Data, Celigo

Meet Ray, Celigo’s head of data

00:04 Nate Briant: Hi, I’m Nate, one of the hosts of the Builder’s Hub Podcast. These days, there’s more data than ever, and more demand for that data to be delivered to more places. With everyone becoming their own data analyst through AI, how do you control data access, ensure data accuracy, feed in clean data, and make sure the right context is there so you can actually achieve business outcomes? In this week’s episode, we’re really excited to interview Ray, the head of data at Celigo. Ray, could you introduce yourself and then tell us something that isn’t on your LinkedIn profile?

00:32 Ray Fang: Hey, Nate. I’m Ray, the Head of Data here at Celigo. My job is simple to say but hard to do. Basically, when the business asks what’s actually happening, they should get one trusted answer as opposed to five conflicting ones. So I live across the stack, from data warehousing in Snowflake to transforming the data and then serving it up via BI or other data products that we deliver to our stakeholders. More recently, I’ve gotten into the AI tooling side of the world, where we’re trying to make sure our employees have the right data and AI tooling they need to do their jobs more effectively. The thing that’s not on my LinkedIn profile: I often spend a weekend automating a really simple ten-minute task. It takes a long time because I want to perfect it, purely because the automation side of the world is interesting to me, and it’s become more interesting now with AI thrown into the mix. So sometimes I just spend the weekend going at it with Claude Code and messing around.

How AI raised the stakes on data quality

01:39 Nate Briant: That’s awesome. That’s exactly what I want to hear: our Head of Data is automating things on the weekends. So, Ray, I think you’re probably the most popular person at Celigo. Everybody always has a question for you, because data answers our questions. We’re probably always pinging you and asking you for stuff. So I have a stat for you to react to. According to our own MIT report, 93% of enterprise-wide integration users have AI that’s drawing on three-plus data sources. What’s your thought about that? Do you believe it? Does it worry you?

02:12 Ray Fang: That’s an interesting statistic. It sounds really high, 93%. Whoa. But when you really think about what you count as a source, that’s actually pretty low. Think about any business question you’d ask. It would probably cross through a CRM like Salesforce, your product adoption data, support data, billing, subscriptions. It crosses many different layers of your business systems architecture. So here’s what this number really tells me: AI quietly raised the stakes on what data quality looks like. Think about what a bad number used to cost you. You got a dashboard wrong, someone got caught in a meeting reporting the wrong number, and that might lead to a small discussion or argument, whatever it is. But now that AI reasons across all your data sources and gives you an answer, it doesn’t really hesitate. If the data is wrong, it gives you the wrong number confidently, the wrong decision confidently. It doesn’t flag or disagree. It just assumes the answer is correct, and it will report that to you.

03:37 Nate Briant: I think it’s a super interesting point. When we were first using AI across the world, it was natural language, so it was making sentences. You can get away with a certain level of hallucination or going off track because it’s language. It’s a sentence. That’s how humans talk; our own brains can wander. But when you’re talking about data, with hard math and real answers and statistics, confident hallucination is more worrying, because you’re relying on the AI to maybe even do the math. So how do you think about using AI in your day to day? Do you want it to help you build queries? Do you want it to answer every question, where you’re just providing the question in natural language? Where is the line between AI helping you build the model and AI just answering the question raw because it has access to all the data? How do you see it when you’re trying to work with it?

04:39 Ray Fang: It kind of depends on the role you’re in. If you’re at the management level and trying to make strategic decisions, you want it to infer from the information you have stored. The way I use it personally is almost like a journal: I put my thoughts into it and say, this is the information I have, this is what I’ve experienced, and it helps me make better decisions day to day based on what it knows about me. If you’re an engineer or an analyst, I would hope that what AI is really useful for is that it amplifies whatever you point it at. If you’re trying to create a technical output, code better, or create a report, it streamlines that process so you don’t have to do the mundane task, and you, as the human, can do more value-added work. That might be making the decision: the AI says, “We have X, Y, Z decision paths. Which one do you want to go with? Which one makes the most sense to you as a decision maker?” So you spend more time making decisions as opposed to more time on mundane tasks like creating PowerPoints or drafting emails. You should be the one to decide how to move forward.

How Celigo manages data quality

06:03 Nate Briant: Totally, that makes sense. And of course, we brought up AI because AI has increased the demand for data exponentially. Everybody needs access: people need access, and they need their AI agents to have access. So, Ray, we’ve talked a little about AI and the need for data, but there’s something underlying this: when people or AI ask for answers, they’re assuming the data is accurate. So, this concept of data quality. What do you think of data quality, and how do you manage it at Celigo?

06:36 Ray Fang: Good question, Nate. Data quality means different things depending on who you ask. Even if you Google it today, there are different frameworks out there with maybe four pillars, five dimensions, seven dimensions, whatever it is: completeness, accuracy, consistency, validity, timeliness, etcetera. When I think about data quality at Celigo, it really starts at the ingestion point. Fixing a bad record at ingestion is really cheap. You can fix it immediately. But if you don’t fix it there, it causes issues downstream, and downstream, in the gold layers maybe, it becomes really expensive, because now decisions are being made off of it. They’re baked into your aggregates and into your AI decision-making process. So the process is: bad data lands, it flows through transformations, that data is fed into dashboards, and now people make decisions off those dashboards. And there’s a really interesting issue here. Back then, if bad data was ingested, the downstream impact was maybe that a dashboard would break. But now, if bad data is ingested and many decisions are being made off of it, with the scaling of AI, it becomes a widespread issue where maybe your company’s directive changes drastically because you had one bad data load.

ETL vs. ELT: choosing the right pattern

08:23 Nate Briant: That makes sense. AI can interpret things and do it with confidence. You said something really interesting there, which is that ingestion is cheap. I think that’s a great segue to talk about ETL versus ELT, extract-transform-load versus extract-load-transform, and choosing the right pattern. Can you explain the differences to the audience, and do you have a preference? I’d love to hear what you do more often: extracting, transforming, then loading, or extracting, loading, and then transforming?

09:05 Ray Fang: The question really is, do you transform the data before it lands or after? ETL is extract, transform, load: it transforms your data in flight and only lands the final result in your destination. ELT is where you dump your data into a destination first, like your data warehouse, and then transform it in place using the data warehouse’s compute. At Celigo, we use Snowflake. We use Celigo’s product, integrator.io, to load data from our various business systems, like Salesforce, NetSuite, Gong, whatever it is, and push it into Snowflake as the storage container, and then we transform it from there. That became our default, so we use ELT, mainly because cloud data warehouses got really cheap and absurdly powerful, so transforming before loading stopped paying off. And you keep the raw data. In our process, it’s a layered architecture where we load our data into bronze, transform it into the silver layer, and then push it into our gold tables. We do that because requirements constantly change, and as they change you may have more complexity, and you don’t want to re-transform and reload all the time. You want to have your raw data so you can decide how to transform it down the road. For modern cloud analytics, ELT really wins out: large volumes, evolving questions, a data warehouse or database underneath it. In my opinion, that’s what most companies will use as a default.

Real time vs. batch: when speed is worth it

11:06 Nate Briant: That makes total sense. Thanks for laying that out. I’m sure we’ll get some emails from the ELT warriors out there who think it’s the optimal method, but it makes sense with the cheapness of cloud storage now, where you can do all of that within the warehouse. I’m curious: you talked about using our own product to move the data. When do you think something needs to be real time versus batch? Is it based on its end use case? Do you always try to do batch? Do you always try to do real time? Do you have a preference?

11:41 Ray Fang: Here’s my take: far fewer decisions need real time than people realize or request. You’ll constantly hear requests like, “Oh, I need real-time data for this. I need to make the decision now.” And the question is, do you really need that now? Getting real-time data is an effort in and of itself. So my question is always the same: what decision are you going to drive with this real-time data? How fast does this decision actually need to be made? And even if you made that decision, are you able to act on it? If a human looks at something once a day, real-time data is pure cost and zero benefit. What generally matters is when the action is going to be taken based on that data. For example, fraud detection: you catch it in transaction, and you want to know as soon as possible when a fraudulent transaction happens. Order and inventory is another: you don’t want to sell something you don’t have. That’s something we’d actually need real-time data for. But if you’re doing something for a general business to run their business, you might need to understand some metric, and that metric is discussed at a QBR or some manager’s meeting. Are you actually going to make a decision right then and there, or will you make a decision at some point that week and then change how you operate based on that decision?

13:29 Nate Briant: Totally agree. It’s about when the discussion happens and how pressing the data is that really matters for the speed at which it’s delivered and acted upon.

13:42 Ray Fang: And so for most businesses, I think batch will win, especially for something like financial reporting. Real time is niche, depending on what industry you’re in or what data you’re working with. But for the most part, just assess when you actually need a decision to be made and whether or not you can even act on it. That will determine how frequently you need your data loaded, ingested, processed, and transformed, whatever it is.

What real-time data actually costs

14:17 Nate Briant: So, Ray, I’m going to throw you a curveball, because I’m curious myself. We talk about costs associated with real time. We say there are more costs with real time versus batch, so maybe it’s better to do batch to save on cost. What is the actual cost a business is incurring? Is it compute? Is it dollars and cents? Is it time? What is the cost associated with real time?

14:40 Ray Fang: I think it’s a little bit of everything you just mentioned, and a little bit more. First and foremost, compute will definitely go up. You’re constantly processing information, as opposed to batch, where you might be doing it once, twice, three, four times a day. You’re constantly loading data into your data warehouse or storage container of sorts, and that will definitely drive up compute. The second thing is storage. I know most people don’t think storage is super expensive compared to compute, but it’s still a factor you have to consider. Real-time data flowing in every single second of the day will definitely add up at some point. Then there’s infrastructure complexity. But I think the most costly aspect is data correctness. If you don’t have your architecture or infrastructure set up properly, that affects whether you’re actually getting correct data out the door, and then your real-time data doesn’t mean anything. Now you’re just paying for real-time data without being able to execute on it. But at the end of the day, it really depends on the company. I don’t want to give a definitive answer, but I think it’s mainly around the storage and compute side of the world.

Where to start when architecting a data stack

16:02 Nate Briant: That makes sense. Everybody has to evaluate that based on what technology they’re using, but those are probably the two factors that drive the most dollars-and-cents baseline cost for doing data integration, business intelligence, that sort of thing. Ray, if you were talking to a VP of IT who’s getting these questions, business users want reports, and they want AI agents to start accessing the data, how would you begin architecting the systems to start resolving those problems?

16:34 Ray Fang: I think the first question is where you’re going to store your data. Is it going to be Snowflake, Databricks, BigQuery? You first have to figure out where you’re going to contain your data. The second, and I think the most important, is how you’re going to get your data in there, and at what frequency. Every company will do this a little differently, but if I were talking to someone starting up their business who just wants surface-level information about how their business is run, BI is obviously the way to go. First, you need to establish where your container is, where your data is landing. You need to store your data somewhere so you can take it and process it to make insightful decisions. You might start with Postgres. It’s free, and it does everything you need it to. Then you might gradually evolve it into a Snowflake data warehouse, because Snowflake is really good with SQL queries and BI. And at some point, when you get more sophisticated and you’re running ML pipelines, you might move to something like Databricks. So figure out where you’re going to store your data first. That’s first and foremost. Second, how are you going to get your data in there? At Celigo, we obviously use Celigo for our data ingestion. And as we talked about before, how frequently do you need your data refreshed? Is it batch, which is probably the simplest way to go? If you’re an early startup, you don’t need to make real-time decisions. Just get batch data in from your CRM, your ERP, and whatever other business systems you have, so you can start manipulating it and making decisions. You might want to use something like listeners or delta flows so you’re not reprocessing all the data over and over again. So, again, it’s about figuring out how you’re going to get your data from your source systems, or from other destinations, into your storage container, in this case maybe Postgres or Snowflake. Once you have that done, you can start transforming your data and creating actual data products with it, and then serve that up in your BI layer. I think that’s the most simplistic way to go for a company just starting up.

What Celigo ingests, and how it decides

19:06 Nate Briant: That’s great advice. I’m curious, Ray, if you could ballpark it, how many source systems do we have? How much do we ingest into our warehouse? Is it a lot? Is it a little? How many applications do we have going?

19:18 Ray Fang: Gosh. At the very least, forty or fifty different systems. But granted, we don’t use every system every day. Most of the decisions we make at Celigo are driven off of a handful, maybe seven to ten systems, things like your Salesforce and your NetSuite. But every function has data that it brings from somewhere. Marketing has a bunch of data from multiple systems. Sales has Salesforce, Clari, Gong, that kind of stuff. Finance has their ERP, NetSuite and some other financial systems. HR has HR systems. Every function has its own systems that it’s bringing into Snowflake so we can make better decisions. But I would say about 50, at least.

20:20 Nate Briant: When you’re thinking about managing the collective amount of data we have, are you taking the approach of waiting until a decision needs to be made off that data to ingest it into the warehouse, because there’s a cost associated with that? Or is it more proactive, where when we bring a system online, or we have a system, that data needs to be ingested because eventually a question is going to be asked about it? Are you more cognizant of the maintenance of the warehouse, or more proactive in the ingestion?

20:52 Ray Fang: I think we’re proactive to a point. We build relationships with our stakeholders because we don’t know everything. It’s important for us to build that relationship with, say, your marketing team, your HR team, your sales team, finance, etcetera, so you understand, “Hey, this is the source system I definitely need,” and so that we can start building our data warehouse. Sometimes you’ll want the history of information that those systems might not carry. They may not store local history, so we can’t make an SCD Type 2 table, and that’s something you might want. You might want to know what changed in the past that your system might not be storing, so you keep that information in your data warehouse. So if the question is, do I proactively go out, figure out every single system at Celigo, and try to load that into our Snowflake environment? No. If the question is, do I work with my stakeholders to figure out what makes sense to load? Yes.

What Ray is building outside of work

22:00 Nate Briant: That’s perfect, that makes total sense. And I think it keeps the warehouse more manageable. You’re not just dumping data to dump data, and you’re definitely not going through the exercise for its own sake. There has to be real business impact. That’s great. This is a ton of great insight, Ray. I really appreciate your time. One final question we like to ask people on the podcast, and you already answered it a little with your intro: what are you building that’s fun? It doesn’t have to be at work. I know you like to build automations at home. What’s a project you’re working on that you’re excited about and would love to share?

22:37 Ray Fang: Actually, yes. When I first started dabbling in AI, I wanted to build a personal assistant so I wouldn’t have to go through my own email and stuff like that. I thought that was a little too broad. What I really wanted was an AI that knows me, not just in terms of storing memory. I know ChatGPT stores logs of our chats, and Claude does the same, but I mean really knows me. So I’ve essentially been building a second brain of sorts in Obsidian, in a wiki-style format. Now it knows me from a personality perspective, knows the decisions I make, and knows how I think. And I can see how things are chained together and how thoughts are linked together. That’s been really interesting. And it’s been fun, because it’s almost like a therapy session every single time. At the end of every day, once I finish work, or when I have some time on the weekend, I’ll log what I did today or what has been interesting. It keeps a log of sorts of me, of my life, and of the way I think. I thought that was interesting and fun to do.

23:55 Nate Briant: That’s super cool. That’s awesome, Ray. The new digital diary, in a way. That’s really cool. So, data at work and data at home. Thanks for joining the podcast, sir. We really appreciate your time.

24:08 Ray Fang: Thanks so much, Nate.

24:11 Nate Briant: And one more thing: if you’re enjoying the Builder’s Hub Podcast, subscribe on YouTube or any of your favorite podcasting apps. We’re everywhere audio lives. And if you know someone who’d get value out of this conversation, send it their way. Thanks for listening.

Learn more

Frequently asked questions