Latest / Agentic Conversations (formally mlops.community) / Streaming Ecosystem Complexities and Cost Management // Rohit Agrawal // #302
Transcript
- 0:01So I, my name is Rohit. I work at Tecton.
- 0:04My title is director of engineering.
- 0:07I essentially just lead a few engineering teams.
- 0:09And for coffee, I'm a huge fan of Cometeer.
- 0:12Actually. I like my coffee like basically
- 0:15how easy and simple I can make it.
- 0:17So I started using Cometeer back in COVID when like all the cafes
- 0:20had shut down and I became a user then and then I was just
- 0:25since then, like I think it's one of those COVID things that I
- 0:29just stuck probably maybe the only thing.
- 0:31And I still drink Cometeer essentially.
- 0:34People of Earth today we get into it with my man Rohit all
- 0:38around streaming data. This real time low latency use
- 0:44case that can be associated with traditional ML.
- 0:50Now I want to tell you a quick story before we get into it
- 0:52because over the holidays about two months ago, I asked everyone
- 0:59in the community what they wanted to see for the new year.
- 1:03And many of you said I want to see some traditional ML stuff.
- 1:07It feels like we've been talking about the AI and LLM booms too
- 1:12much. So this episode right here is
- 1:16for your viewing pleasure. And if you are listening on
- 1:23podcast stations around the world, we've got a recommended
- 1:27song, recommended listening, which comes from a fan, Amy or
- 1:34AMI, because I've been asking folks what their favorite music
- 1:40is when they join the community. And this one is a gem that I did
- 1:50not know about. It's Gibran Alkoser and the song
- 2:01is called Idea 10. Testing production, that's how
- 2:32we're running with this. Basically this conversation came
- 2:35about because I was on a call with you and Kevin, the Co
- 2:41founder of Tecton and you guys were explaining to people all
- 2:47about streaming and the situation that the data
- 2:52streaming and streaming ecosystem looked like.
- 2:55And I thought, man, that is such a cool topic for a podcast.
- 3:03I would love to talk to you more and dive into it.
- 3:06So we should probably just start with like, what is your
- 3:09day-to-day? You're working at Tecton.
- 3:11What are you doing there? Yeah, absolutely.
- 3:14So I joined Tecton about like four years ago.
- 3:17So I joined as an IC. We were pretty small back in the
- 3:20day. So I worked on pretty much
- 3:22everything, but I focused mostly on the real time pieces.
- 3:25So for example, streaming, as you mentioned, a lot of
- 3:27challenges around that. My role now has changed a little
- 3:30bit. So I am more in like a
- 3:32managerial role right now. So I managed 3 different teams
- 3:36that focus on like streaming data, batch data, online
- 3:38inference, offline inference, etcetera.
- 3:41So kind of like the core data flows and infrastructure that
- 3:43Tecton provides as part of its like core product.
- 3:47So in in short my days, a lot of meetings, but yeah.
- 3:53We should probably stay for everyone because we can't take
- 3:56it for granted that everyone knows what Tecton does.
- 4:00Yeah, absolutely. Yeah.
- 4:01They're one of the original OGS feature platforms.
- 4:06So a lot of dealing with your features, transforming your
- 4:09data, making sure that you can do use cases like fraud
- 4:14detection, recommender systems, loan scoring.
- 4:18I mean, are there other stuff that you see people using Tecton
- 4:22a ton for? Also for like insurance claim
- 4:24processing is also like a big use case for us.
- 4:28Recommenders are like in many different shapes and form and
- 4:30then broadly fraud and risk applications I would say is the
- 4:33biggest like use case for us. Yeah, yeah.
- 4:36That those use cases that you just need really fast responses.
- 4:41Yeah, yeah. So that's why we wanted to talk
- 4:44about streaming, man, that leads us right into the whole
- 4:47streaming ecosystem, like Breakdown.
- 4:51What is it? What does it look like right
- 4:53now? What are some things that have
- 4:56changed since I was on that call with you like a year and a half
- 4:59ago? I can't even remember.
- 5:00Yep, yeah, absolutely. So I think like when we look at
- 5:04customers, most of them have, you know, invested in like a
- 5:10streaming solution which can like screen data at low latency.
- 5:13So for example, this is like Kafka, Kinesis, etcetera, but
- 5:19that's kind of like a data delivery mechanism, but they
- 5:22kind of fail when it comes to using that data effectively for
- 5:27applications. So a lot of app companies we
- 5:30talked to have like data in these Kafka Streams, can use the
- 5:33streams, but then they fail in making like machine learning
- 5:36models or even like analytical use cases use this data
- 5:40effectively and so. Wait, why is that?
- 5:44So yeah, I mean, I'm going into it.
- 5:46So I think like fundamentally the the ecosystem is extremely
- 5:50fragmented in terms of like several different tools and
- 5:53technologies. And so you have to string
- 5:56together a bunch of these things, hire exports for each of
- 5:59these things. And then once you can even do
- 6:01these things, it's not a one time cost to actually build it
- 6:03out. But these systems need like
- 6:05resiliency and reliability. And so it's like an ongoing
- 6:09effort to basically maintain these systems.
- 6:11So the simplest solution we see is people have like a Kafka
- 6:14stream and they would have a stream processor, which can
- 6:17either be like a Spark or a Flink, and then they basically
- 6:20connect that to then storage like could be key value stores,
- 6:23could be offline storage like Iceberg, and then build a
- 6:27serving layer on top of it for applications to consume this
- 6:29data. And each of these different
- 6:32steps actually requires like different skill sets.
- 6:34So building a team to actually do all of these things is very
- 6:37difficult. And the tools inherently that
- 6:39are available from the ecosystem are also like fairly difficult
- 6:44to actually use, especially if you're trying to like go from
- 6:47zero to 1. I think like if you have a very
- 6:49large team and you're running like Flink at let's say, you
- 6:53know, Facebook or meta scale, you know, it's maybe somewhat
- 6:56manageable. But for like smaller companies
- 7:00and teams that just want to still leverage the real time
- 7:03data the ecosystem doesn't really have like these simpler
- 7:06tools available for people to use.
- 7:09Yeah, and I know that Dynamo DB plays a huge part in this.
- 7:14Where does it plug in? Is it on that serving layer?
- 7:17Yeah. So Dynamo is basically storing
- 7:19records coming in from a stream processor and then making it
- 7:22available for high throughput, low latency serving.
- 7:25So essentially something needs to write to Dynamo and something
- 7:28needs to read from Dynamo. And that writer and reader is
- 7:32something that each company kind of built it their own way.
- 7:35And even maintaining that is a challenge because you need to
- 7:39think through like what is the schema which favors like read
- 7:42latency versus like write latency?
- 7:44And which one is more important to you and how do you evolve
- 7:47that over time? And all these are like
- 7:48challenges that people who are building all these pipelines
- 7:51have to think through very deeply when they're building
- 7:55these systems. Yeah, because you're trying to
- 7:58just keep things super fast, as we said, and make sure that your
- 8:02use cases like the loan scoring or the fraud detection or
- 8:06recommender system, whatever, is just blazing fast.
- 8:10And so you need to think through wherever you can shave off
- 8:14milliseconds. Yeah.
- 8:16And there's this also additional dimension of like cost because
- 8:20so I, I always think of like these are two sides of the same
- 8:23coin, which is how fresh do you want your data and how much are
- 8:27you willing to pay for it, Right.
- 8:29And ideally, like, they should be like In Sync with each other,
- 8:32meaning that like, if I want data at like millisecond level,
- 8:36like granularity, I'm willing to pay more money for it.
- 8:38And if I am OK with, you know, an hour worth of like freshness
- 8:42and I'm willing to pay less for it, right?
- 8:44And I really want a system that has the right levels of like
- 8:47knobs build in which can give you this like trade off and you
- 8:51can like actually play with it. For a lot of like systems that
- 8:55we see in the real world, like this is not present, meaning
- 8:57that like they either have a system that's built for like
- 9:00very low latency and very, very and there's a very high cost of
- 9:03like the system or it's like the complete, you know, on the other
- 9:08side where the cost is relatively low, but the but the
- 9:12system cannot afford like, you know, freshness.
- 9:14That's pretty low that that's required by applications.
- 9:17And most companies have like a very like a very varied set of
- 9:23use cases. Some need very low latency, some
- 9:25are OK with slightly higher like latencies, etcetera.
- 9:28And so I think having a system that can manage the cost for
- 9:32that freshness is also very important as opposed to like,
- 9:35you know, building it like the simplest analogies.
- 9:37Like, you know, people are not just looking for like a Ferrari
- 9:41because it's, it's just like fast, but it's also very
- 9:43expensive. And then like what people what
- 9:46really want is that like they want a system that's like fast
- 9:49on some days when they need it to be, but can also like act as
- 9:53like a Ford SUV when you want to go to the grocery store and buy
- 9:56some milk and eggs. Yeah, if you're with your family
- 9:59and that makes total sense because you have different use
- 10:02cases that have different needs and different freshness and
- 10:06different variability of how much you're willing to pay for
- 10:09that. So for each instance of these,
- 10:14you want to be able to configure it to those different
- 10:19constraints that you have. Yep, absolutely.
- 10:22And the other thing that I was thinking about because you were
- 10:26talking about how folks are using Flink or Spark, I think I
- 10:32remember Duck DB being plugged in here in some ways.
- 10:37Can you talk to me about that? Yeah.
- 10:39So on the batch side of things, we do provide a solution called
- 10:44Rift, which uses Duck DB as an alternative for some of the
- 10:48batch pipelines. OK.
- 10:49So that's kind of like the equivalent of like Spark batch,
- 10:52right. But on the streaming side of it,
- 10:55we we don't use a dot DV there. We have our own like stream
- 10:58engine there essentially that we use.
- 11:00Yeah, that makes sense. OK, so basically that is the
- 11:05scene you have set is that there's a bunch of disparate
- 11:10pieces to the puzzle. Mostly everyone builds one size
- 11:16for all of their use cases in their organizations, and they
- 11:21don't think about how to service each individual use case
- 11:26through. And then you've got reliability
- 11:31or maintenance of these pipelines and of these platforms
- 11:36that come into play. How do you see teams dealing
- 11:40with that maintenance? Yeah.
- 11:43I mean, honestly, it's like very challenging because a lot of the
- 11:46times the teams that are building these are sometimes
- 11:48like machine learning engineers or people who are more focused
- 11:51on like the data layer of it. But the production experience of
- 11:55like maintaining the system typically falls to a different
- 11:57team. And this, this silo between the
- 12:00teams often is a huge challenge for a lot of our like customers
- 12:04that we see. And on top of that, like it's
- 12:09users care about like end to end reliability, right?
- 12:12As opposed to like whether my Flink went down or my worker
- 12:15went down, etcetera. And they were looking for
- 12:17solutions that can offer end to end reliability across the
- 12:20entire pipeline. And that's something that's just
- 12:22very, very difficult to build because a lot of the on call
- 12:25production team things of like one service in the individuality
- 12:29of it and a lot of the machine learning teams care about like
- 12:32the end to end reliability of the entire pipeline.
- 12:34And this mismatch often is like a huge concern for a lot of our
- 12:38like customers that we see. So wait, this means basically
- 12:42the SRE who's getting pinged at 3:00 AM is getting pinged for
- 12:47one particular piece like the Flink went down.
- 12:50Exactly, Yeah. The machine learning engineer is
- 12:54thinking about, well, I've got Kafka and I've got my flank and
- 12:58and how are they looking at it? That's not just like that one
- 13:01service went down. Correct.
- 13:02Like for example, if let's say like your flank went down in or
- 13:06like a Spark Structure streaming engine went down, then probably
- 13:09no messages are being backed up in like Kafka.
- 13:12And now the machine learning applications are seeing like
- 13:15high freshness basically like they're not processing any more
- 13:18real time data. And so the repercussions of each
- 13:21of these are like so far and beyond that, a lot of the, if
- 13:26you're building a solution that requires stringing together a
- 13:28bunch of these disparate tools, then it's like a never ending
- 13:32game of like trying to build end to end reliability because it's
- 13:35just very difficult to do that for like individual components.
- 13:38And then you start to see that's where you can make the case for
- 13:42a lot of money being burnt on fire.
- 13:47Yeah. I mean, we constantly come
- 13:49across customers who are spending like, you know, 10s of
- 13:52thousands, if not hundreds of thousands on like just simple
- 13:55like streaming pipelines. And I'm just talking about the
- 13:58infrastructure cost of it. There's the other cost of it,
- 14:00which is like the SRE cost of it and the operational cost of it
- 14:04on the day-to-day basis. But just like pure AWS infra
- 14:06bill for all of these pipelines is like pretty high and like
- 14:11optimizing it is very, very difficult given their stack.
- 14:15Have you thought about different best practices on how to
- 14:18optimize that besides like, OK, just plug in Tecton here, right?
- 14:22I imagine that you have seen teams that are doing this well,
- 14:27and what does that look like? Yeah.
- 14:29I think like to be honest, a lot of like newer age technologies
- 14:32that are coming in are actually aimed at bringing down like the
- 14:35operational and one time cost of setting these things up.
- 14:39I do think it requires a departure from just like a
- 14:43mental thinking model of like I want to use what Google and
- 14:47Facebook are using, which typically could be Flink
- 14:50etcetera. And I think it requires you to
- 14:51be open to some of the newer technologies that are coming in.
- 14:54So I'll give you one example where we're seeing a lot of like
- 14:57streaming solutions not use like local disks attached to nodes,
- 15:02but use S3 as like a storage service and, and stream all that
- 15:07data through S3 essentially and kind of build an object storage.
- 15:11So one good example of is, is, is like warp Stream, for
- 15:14example, which kind of like is, is that a Kafka on S3?
- 15:19Basically they got recently acquired by Confluent.
- 15:22And we're seeing a lot of like these newer age, like real time
- 15:26operational systems that are truly building for like the
- 15:29cloud and leveraging object storage.
- 15:31And that's, I think that's a huge way that huge level that
- 15:34customers can pull and see like where are we using cloud
- 15:37resources effectively in a stack or not?
- 15:40And is that just because it's much cheaper to do it through
- 15:45S3? It is cheaper but also like the
- 15:49IT gives you elasticity. So I think like, the biggest way
- 15:51you can think of it is you can start to scale compute and
- 15:54storage independently as opposed to, for example, if you are
- 15:58using like disks that are attached to your server, then
- 16:02every time you add a new server, you're also adding more disks to
- 16:04it. And so it's very difficult to
- 16:06decouple the two, whereas some applications may require more
- 16:09compute. And in those cases, you're still
- 16:10ending up paying for like more storage.
- 16:12And I think the cloud gives you this elasticity of like being
- 16:15able to scale different like layers independently.
- 16:18And it leads to like not only reduced cost, but also just like
- 16:21reduced operational overhead. Yeah, that is cool.
- 16:26What other tricks? Because I hadn't heard about
- 16:29these guys that just got acquired from consulate.
- 16:31What was their name? Warp Stream.
- 16:33Warp stream. Yeah, fascinating.
- 16:36Yeah, I think that there are other like in other interesting
- 16:40tricks that like we see some of our customers use, for example,
- 16:43like a a big cost of like streaming workload is typically
- 16:48checkpointing, which is like how frequently are you writing to
- 16:51storage in case you're streaming application, in case you're
- 16:54streaming pipeline failed, you can recover from the latest
- 16:56checkpoint. And you know, typically the more
- 17:00you are checkpointing, the more you're paying for this
- 17:04checkpoint it cost. But the benefit you can get is
- 17:05that if you let's say it went down, you can you can pick back
- 17:09up from the most recent checkpoint, which maybe just be
- 17:11a few seconds ago, right, Because you're checkpointing so
- 17:14frequently. And I think for a lot of our
- 17:16customers at the default checkpointing settings for a lot
- 17:18of these streaming applications is just like very, very high.
- 17:21And they're often surprised to see just like the cost when the
- 17:24bill comes up. And for a lot of our customers,
- 17:27like we can just look at like it's just like one of those
- 17:29things where when most customers ask us like, why is my streaming
- 17:34though so high for my existing stack?
- 17:36Like the first place we would look is like how frequently are
- 17:39you checkpointing to disk, etcetera.
- 17:40And I think like a lot of our customers are just surprised by
- 17:44like, OK, I didn't even know about this.
- 17:48And what is it that the majority of the time you don't need to be
- 17:52checkpointing as much? So I think like it's, I think
- 17:55checkpointing is usually like very important and it should be
- 17:58done. It's a question of like, do you
- 17:59want to do it every second, every 10 seconds, every 30
- 18:02seconds, every minute, every hour?
- 18:04And just the default settings for a lot of the streaming
- 18:06workloads is like very aggressive checkpointing.
- 18:10And if even if you can tune it from the one second to let's say
- 18:1410 seconds, and if your application can allow that level
- 18:17of like recovery point objective, then you can save
- 18:21like pretty significant costs for a lot of our users.
- 18:24Yeah, that feels like a huge difference from one second to 10
- 18:28seconds. Yeah.
- 18:29I mean, as I said, like it's a level of like how much cost are
- 18:31you willing to pay for how much freshness and these knobs are
- 18:35present in some systems. But you need to know of like
- 18:37what these knobs are and how to tune it effectively.
- 18:40Otherwise you will. You might just end up spending a
- 18:42lot of cost for workloads where you don't require that level of
- 18:46like freshness. Well, it goes back to your whole
- 18:49thing at the beginning where you were saying when you have to
- 18:52patch together so many disparate tools, you have to have people
- 18:56that understand and are experts in all these tools so that they
- 19:01know, oh, it's possible for us to just checkpoint every 10
- 19:05seconds. Yeah.
- 19:06And they also need a reason about the end to end pipeline
- 19:08and understand what this one thing will lead to the end to
- 19:11end pipeline because most application teams are concerned
- 19:14about that as opposed to like this other objective for
- 19:17example. And it's just a very hard
- 19:19problem to solve. I know you talked about the way
- 19:24that you look at the shape of the data as being a lever that
- 19:27you can pull. And so it is this picture that
- 19:31you're painting in my mind is just like, there's so many
- 19:34stakeholders involved. And that just makes it way more
- 19:40complex because at any time you have to throw more bodies at a
- 19:43problem, it's going to increase the complexity of the, the, the
- 19:48solution in this case. But then you've got like like.
- 19:54I imagine the data scientist isn't thinking about the schema
- 19:58as much for how to make it just fully optimized for speed.
- 20:06Yep, exactly. Like I'll give you, I'll give
- 20:07one example where we came across a customer who was like storing
- 20:12protobuff messages inside the message stream, right?
- 20:15And well, it made sense because the team that was like putting
- 20:18data inside the stream was dealing with protobuffs and they
- 20:22were like doing it that way. However, like on the consumer
- 20:25and we were having to deserialize all these protobuffs
- 20:28into messages that we can like bars and ingest in our like
- 20:31store ingest in the storage and serving solution.
- 20:34And when you spoke to the data scientist, like they just did
- 20:38not want to reason about like why do you want us to approve us
- 20:41in the 1st place? And it was just like an
- 20:42abstraction level of thinking where they are, which they are
- 20:45like not used to. They are used to operating a
- 20:47little bit like higher level of abstraction, which like
- 20:49completely makes sense. But they are either forced to
- 20:53like reason about like much lower levels of abstraction or
- 20:57they just have to deal with like the performance hits that they
- 21:00are like getting and it just seems like they have to pay a
- 21:03tax one way or the other with a lot of the existing systems of
- 21:06BSc. Yeah, what a great point,
- 21:10because they're just going to do whatever is the easiest.
- 21:13It's like water flows downstream and is trying to minimize the
- 21:19friction that it encounters. And so if that is the only
- 21:24solution that they know works, and they're probably going to
- 21:27take that upon them. And, and it makes me think also
- 21:30about how important it is on the organizational side for these
- 21:35different stakeholders to be talking to each other and to
- 21:38understand each other's goals and know that, all right, the
- 21:42data engineer is setting this up for me.
- 21:45So what, like, talk to me more about what the data engineer can
- 21:50do, right? Like if I'm a data scientist, I
- 21:53am diving into data engineering, which probably isn't my strong
- 21:57suit, but it's going to help me understand what these folks are
- 22:02able, capable of of doing, or it's going to help me understand
- 22:09what levers these folks have to pull.
- 22:12Yep, exactly. And like, for example, we see
- 22:14cases where there are some people who don't care about what
- 22:17is inside the screen as long as they treat each of those
- 22:20messages like a black box basically.
- 22:22And their job is just to make sure that these black boxes are
- 22:25flowing through the system. And there is some other team
- 22:27that like cares about what's inside the black box and what
- 22:30how that affects like the end to end system.
- 22:33And we see like this again, again, again about like how it's
- 22:38kind of like this is not my problem, it's your problem, It's
- 22:41not my problem, it's your problem.
- 22:42But at the end of the day, it's like hurting the application
- 22:44that's actually needing this data.
- 22:46Yeah, and that's not even dimension like going upstream
- 22:48where the data is created. Yep, exactly.
- 22:51Trying to figure out like how if things change way upstream then
- 22:56it it's a domino effect all the way down.
- 22:58Correct. Yeah.
- 22:59And we see that like we see that when like we'll see like the
- 23:03application team basically saying that like, hey, we're
- 23:06seeing like events that are not fresh.
- 23:09It's, we were used to seeing events about like a second ago
- 23:12and now we're seeing events that are like an hour ago, right?
- 23:15And debugging that just takes like so much effort sometimes
- 23:18for a lot of our customers. Which is that is it the
- 23:20application that's processing the screen that's having delays?
- 23:23Or is it the application that's putting messages inside the
- 23:26screen that's having delays? Is it the consumer application
- 23:29that's having delays? And so it's kind of like this,
- 23:32you know, highway where like, even if like one place is like
- 23:35stuck, it can affect like backstream the entire thing.
- 23:37And figuring where the exact problem is can often be
- 23:40challenging. Yeah.
- 23:43And you have to go and then be this detective in a way.
- 23:48And the more tools that you're using, the more headache.
- 23:52Yeah, it's just, it just gets the problem just gets like
- 23:55exponentially difficult because because you now need to check
- 23:57like all the different tool interactions.
- 24:00And now suddenly if you're using 2 tools or four tools, that's
- 24:03now like 8 or 16 different interaction points you need to
- 24:05check. I feel for all those folks out
- 24:08there that are dealing with this on a day-to-day basis because it
- 24:12sounds painful. What else you got for me?
- 24:16What other tips and tricks and and just like streaming
- 24:20ecosystem stuff. I mean, I love the fact that I
- 24:24am very green in this field and you live in it.
- 24:32And so just like simple stuff that you're telling me is
- 24:35blowing my mind. Yeah.
- 24:37Like another thing that we see is like how much data, how much
- 24:40data retention is there in your stream?
- 24:42Like for example, streams are meant to typically contain like
- 24:45recent data, but recent itself is like subjective.
- 24:48Like you might keep a day's worth of data in your stream, or
- 24:51you might keep like 7 days worth of data in your stream, or you
- 24:54might keep like 30 days worth of data in your stream, etcetera.
- 24:57And you can just keep extending that.
- 24:59And again, like you need to think effectively about like how
- 25:03much data you want. So let me back up a little bit.
- 25:07So a lot of our customers have to like stitch together
- 25:12streaming as well as batch data because what they want insights
- 25:15on is like, yes, they want insights on what happened in the
- 25:18last five minutes, which may be present just by looking at the
- 25:21stream data. But they also want to know
- 25:23insights about what happened in the last like 7 days or 10 days,
- 25:26right? Which may include looking at,
- 25:28OK, I'll look at the stream for the last like maybe a day.
- 25:30And then I look at my batch data because my batch has data for
- 25:34like the last six days, right? And so I think one effective
- 25:37thing is like deciding what's the cut off point between what's
- 25:41stored in batch and what's stored in stream, right?
- 25:43And so one way to lower cost could be that like I'm only
- 25:46going to keep like the last two days worth of data in stream.
- 25:50And then anything beyond that up until like history, it's all
- 25:53going to be in my batch data, or you could say that like another
- 25:57deal with the batch data and my application just needs like
- 26:01statistics up to 30 days. And I'm going to keep all that
- 26:03within the stream itself. And each of these decisions that
- 26:06you make affect like cost in like pretty substantial amount
- 26:09of like ways. So for example, the one easy way
- 26:13we like help a lot of our customers is if you had a system
- 26:16that can effectively handle batch and streaming data and
- 26:21make it available to the application where the
- 26:23application doesn't care about whether it's coming from batch
- 26:25or stream, Then you can like really start to arbitrage based
- 26:29on what you want in the stream and what you want in the batch,
- 26:31right? And you can start putting lesser
- 26:34and lesser data in your stream, like only the recent relevant
- 26:37data and push more stuff to batch.
- 26:40But it requires you to have like a very advanced, I would say
- 26:43like data engineering pipeline, which can really be able to
- 26:47combine this batch and stream. They are coming in effectively.
- 26:51So for example, we can operate with like even, you know, a few
- 26:56hours of data in the stream as long as, as long as data beyond
- 26:59that is coming from the batch, which can, you know, really
- 27:02reduce cost for users if they are used to storing like 30
- 27:06days, seven days, 10 days worth of data in the stream.
- 27:09Dude, so do you see folks creating two different systems
- 27:17for the batch and the streaming? Yeah.
- 27:19So, so it's actually pretty like so interesting.
- 27:22So what we see is that like if let's say a machine learning
- 27:25engineer, data scientist said, hey, I need like five data
- 27:29points. One is the recent transaction
- 27:31history for the last five minutes, one is for the last
- 27:33hour, one is for the last 10 days.
- 27:36And 1 is like a lifetime sum of it essentially like the total,
- 27:39right? The first 2 are like more recent
- 27:42and like the engineer to build like a streaming pipeline for
- 27:46that. And then the other two are like
- 27:48more historical like 7 day or lifetime and they would build a
- 27:51separate batch pipeline for that, right.
- 27:54And then these completely are like disparate pipelines and the
- 27:59the data scientist would have to write transformations etcetera
- 28:02separately for each of these pipelines.
- 28:04And then they would then like use that in the machine learning
- 28:07model and separately train and like serve based on that.
- 28:12Having these separate pipelines is often a huge challenge for
- 28:16like customers in terms of like duplication of efforts,
- 28:19infrastructure cost as well as like operational maintenance of
- 28:23each of these pipelines. There we go with that
- 28:26operational maintenance. Again, that is something not to
- 28:29be underestimated. Yeah.
- 28:30I mean, because this is because the cost doesn't just stop at
- 28:33like the day you launch this in production.
- 28:35Like that's kind of like the beginning of it actually, where
- 28:37most people actually feel if you spend like let's say three to
- 28:40six months and you put this in production, your work is done.
- 28:43But like in the in reality, like that's kind of like the starting
- 28:46of the work. And then beyond that, to
- 28:48actually run this in production is actually the hardest part.
- 28:51Yeah, that's where you get those bills.
- 28:53Coming in and all of a sudden. You're like, what the hell are
- 28:55we spending all this money on? Yep, exactly.
- 28:57Yeah. The other thing that we're also
- 29:01seeing is a lot of the streaming ecosystem players are also
- 29:04maturing quite a bit and they're offering more and more services
- 29:07within them. Like a good example of this is
- 29:10if you today had a pipeline that was, you know, taking stream
- 29:14data and dumping it into S3 or Iceberg, etcetera, actually like
- 29:20Confluent is offering like managed services for that.
- 29:22So you can just have like stream and just say dump it to like
- 29:26Iceberg and they have this new service called like table flow.
- 29:29And so we're seeing that like a lot of this like fragmentation
- 29:32in the industry where maybe there was some vendor for like
- 29:36just producing stream messages and like serving them out.
- 29:38There was another vendor for like putting them in like object
- 29:42storage. Maybe there was another vendor
- 29:43for putting them in online storage.
- 29:46We're seeing like some consolidation within that, which
- 29:48is effectively raising again, like the abstraction on which
- 29:51you need to think of. So for example, as I mentioned,
- 29:54like Confront is offering now a fully managed service to
- 29:57basically take your stream and bump it into like iceberg.
- 30:00And you don't even have to think about like how data is going
- 30:03from your screen to iceberg and what would happen there,
- 30:05etcetera. I do think like these managed
- 30:08services are expensive when you think about like the cost, like
- 30:12the one time cost of it. But if you truly are able to
- 30:15factor in the operational cost of it, I do think like these
- 30:18services make sense. And we're increasingly seeing
- 30:21this across like for example, even within Deer Bricks, even
- 30:24within Confluent and even like Snowflake, for example, is
- 30:28offering some of these services. So for example, if you have a
- 30:31Kafka stream and if you want the records dumped into a Snowflake
- 30:34table, they're offering like minus services for that.
- 30:37And then obviously they have the entire store Snowflake stack
- 30:40beyond that. So we're seeing like effectively
- 30:42a lot of these vendors provide more end to end solutions and
- 30:47take on the complexity of like stringing these tools together.
- 30:51And I do think like if, if you're like a service, if you're
- 30:54operating a service, if you're operating a company where you
- 30:57are dealing with a lot of these disparate tools, then using some
- 31:00of these managed services by different vendors could be like
- 31:03quite useful for you. We see that all the time in the
- 31:07ML OPS community Slack. So many folks will come through
- 31:10and ask the questions and it's, it's almost like, yeah.
- 31:15And, and the question is phrased in some shape or form of hey,
- 31:20I'm using XYZ managed service, be it Sage Maker, be it data
- 31:23breaks, be it whatever. But it's so expensive.
- 31:27And I'm thinking about what we can do to make it cheaper.
- 31:31And inevitably someone will chime in on the thread and say,
- 31:36OK, you can use this open source alternative, or you can try and
- 31:42roll your own in this way shape or form.
- 31:45But don't forget the cost of the humans that are going to be
- 31:49maintaining that. And so you think it's cheaper.
- 31:53Maybe on paper your cloud cost go down, but then your manager
- 31:58or your manager's manager is looking at it and saying we just
- 32:01spent less on the cloud cost, but we're spending way more in
- 32:04headcount. Yeah.
- 32:06And that's truly one thing that we see.
- 32:08The other thing we see is that a lot of companies want to focus
- 32:12on like product velocity, right. And so for example, if like even
- 32:15if you set all this thing up, but you are anticipating that
- 32:19like I need to build you know, three times or four times as
- 32:23many features and models etcetera and large time in
- 32:26production. Is this going to be a bottle
- 32:28like in terms of me launching these new models and like
- 32:32pipelines in production, which is really a problem because then
- 32:36it delays your ability to go to market with these products
- 32:39quickly. And so far we see this across
- 32:43the industry as well, where sometimes people just come to us
- 32:46because they feel like, hey, I know this, I can run this on my
- 32:50own. I can even hire people and I can
- 32:51do all this stuff. But as a business, I just don't
- 32:54want to focus on things about these things.
- 32:56And I just want to focus on product velocity and being able
- 32:59to launch the best products out there to to the end consumers
- 33:03and not have to worry about whether this product will get
- 33:07delayed because some other team will not start this on their
- 33:10road map and will require more resources to maintain these
- 33:13things. I saw a blog post the other day
- 33:16from fly dot IO talking about how they created GPU offerings
- 33:23because they're, you know, like this cloud.
- 33:26And they basically said we were wrong about the whole GPU
- 33:29offerings and it was a lot of hard work and we aren't going to
- 33:33continue with it. They're not discontinuing it,
- 33:35but they're not really advancing forward.
- 33:37And there was this nugget in that blog post that I thought
- 33:42was the coolest phrase I've heard in a while.
- 33:45It stuck with me. It said a very useful way to
- 33:50look at a startup is that it's a race to learn stuff.
- 33:57Yeah, that makes a lot of sense, Yeah.
- 33:58It's just a race to fail and fail and then learn what works.
- 34:02And so that's exactly what you're saying, Like it echoes
- 34:05this product velocity. How fast can we learn?
- 34:08Yep, if this product works or it doesn't.
- 34:11And yeah, exactly. And you want to remove as many
- 34:13bottlenecks, that's like slowing down your learning curve as much
- 34:16as possible. And like probably the only like
- 34:19bottleneck should be how quickly are you getting feedback from
- 34:22customers. But beyond that, you don't want
- 34:24to slow down your process of delivering value to customers.
- 34:28Yeah, because that's in your hands.
- 34:30Exactly, Yeah. Yeah, yeah, The other stuff
- 34:32maybe it's a little bit more difficult to get that feedback
- 34:37or that that loop coming back. So it makes sense, man.
- 34:41So all right, cool. Well, that is a, that's a solid
- 34:45one. I mean, the managed service one
- 34:47too, just how different products are going into different spaces
- 34:56always fascinates me because it feels like everybody's trying to
- 35:00become the one platform like the Databricks.
- 35:04And so in five years, all of a sudden you can do everything
- 35:08that you can do on Databricks on conflict.
- 35:10Now I I don't know if you have thoughts on that one.
- 35:13Yeah. I mean, I think a good example
- 35:15of this, for example, is like Iceberg.
- 35:17And I think like Iceberg is on track to become like, I think
- 35:21like what GitHub is to code. I think like I will be to data
- 35:24basically for any organization essentially like it'll be
- 35:26decentral place in which everything is stored.
- 35:29And like all the vendors, it could it be data bricks, could
- 35:32be Snowflake, could be confluent, essentially they have
- 35:34to read and write from that, but then everything is like stored
- 35:37there. And we are seeing more and more
- 35:39of these services becoming agnostic to sort of like these,
- 35:44these implementation stuff and focus more on like how can they
- 35:48be more like compatible with each other, especially when, for
- 35:51example, storage is not moved to like a common solution.
- 35:56And I think we will see more of these things where you could
- 35:59more easily transition from like 1 vendor to the other because
- 36:04you don't have to think about how the data is going to be
- 36:07migrated from 1 vendor to the other, which used to be like the
- 36:09biggest challenge. Like if you're storing data in
- 36:12one vendor, just migrating that to the other vendor without
- 36:15losing it in a secure way. I think there's going to be a
- 36:18thing of the past. And if all of this data ends up
- 36:22being stored in like iceberg, etcetera, or like an open
- 36:25standard formats on the cloud, then switching from 1 compute
- 36:30vendor to the other is, I think going to be significantly
- 36:33easier. Wow.
- 36:36And maybe it's not even that. OK, we're on data breaks now.
- 36:40We're going to migrate to Snowflake.
- 36:41It's like for this job we use Snowflake and for this.
- 36:45Exactly. Yeah, because at the end of the
- 36:47day, it could just be that if you took a 10,000 foot overview,
- 36:50could be like there is some compute job that spins up, reads
- 36:53data from Iceberg and writes it back to iceberg.
- 36:56That job essentially could be a data brick spark job.
- 36:59It could be a snowflake query. It could be like a big query
- 37:03something it could. Be their duck.
- 37:05Etcetera. And I think we're already
- 37:07science starting to see the early signs of this where a lot
- 37:10of companies are now mandating that we want all of our storage
- 37:13to be in iceberg because we don't want to be in a vendor
- 37:16lock in with like any particular vendor among data storage.
- 37:20Man, that's wild to think like the analogy of Iceberg is to
- 37:28data what GitHub is to code. Yeah.
- 37:31I mean, effectively, if you go to any organization today, like
- 37:34by and large, mostly there might be several teams, like several
- 37:38different engineering teams, could be UI teams, front end
- 37:40teams, back end teams, etcetera. They're probably all storing
- 37:44their code on like GitHub and they're all searchable and they
- 37:47have like common mechanisms. They may have like different
- 37:49build processes etcetera as well like that building code,
- 37:52etcetera. But they're all effectively
- 37:54reading from GitHub and they're like making changes to the repo
- 37:57there. And I think we're we're I think
- 37:59like code was maybe ahead of it's time and data is maybe
- 38:02catching up now. But I do imagine a world where
- 38:05like we don't have to think about like is this data stored
- 38:09in one vendor on? Is this data stored in a
- 38:12different vendor? The data is just stored in
- 38:13Iceberg and you can read write from anywhere basically as long
- 38:17as you have a standard data format and standard catalog
- 38:19essentially. Yeah, well, that's the dream.
- 38:22And then what it's like the data would be specialized it for its
- 38:29specialized use cases like oh, I've got this generative AI use
- 38:33case where I've got this fraud detection use case and it's
- 38:37doing like you said, it's spinning up some kind of a
- 38:39compute and. Yeah.
- 38:42I mean we're already seeing this for like structured data.
- 38:44I think it's kind of centralizing on this.
- 38:47I think unstructured data and different modalities of data
- 38:50like video etcetera. We still have some room to go
- 38:53there. But I'm fairly certain for like
- 38:56structured data as well as like unstructured embeddings data, we
- 39:01are very, not very far from a world where we will see a lot of
- 39:05organizations to store everything in iceberg.
- 39:08Damn, yeah, that's very cool to think about and what that
- 39:14unlocks. Yeah.
- 39:15And I think like, for example, like the Databricks acquisition
- 39:18of like Tabular when Databricks was themselves actually building
- 39:21Delta, which was a different format than like Iceberg.
- 39:25I think it's a great indication that like even probably the
- 39:29vendors themselves are seeing where they need to head to and
- 39:32where the bug is going. The first thing that comes to my
- 39:36mind is this is happening with no like formal committees, no
- 39:42standardizing bodies. It's just happening because
- 39:47people see that this is the way forward.
- 39:50Yeah. I mean, like a lot of the
- 39:52iceberg like community came from like several different
- 39:55companies. I think they're like maybe 10 to
- 39:5620 companies that are operating, but I think they're all
- 40:00realizing that we have to work together to achieve this
- 40:03solution or else we're good end up in a world where it's
- 40:08possible that like 90% of the world is like using iceberg, but
- 40:11we have our own storage format and they don't want to be in
- 40:14that world like where they're like on the silo somewhere else.
- 40:16And so when, when there's enough momentum in this, this space,
- 40:21which I do think there is enough momentum in the space, a lot of
- 40:24people want to join the momentum as opposed to like, you know.
- 40:28Stay away from it or like run against the tide.
- 40:31Now let's go back to something that you said earlier, which is
- 40:34folks are understanding that they are not necessarily in a
- 40:41position that they need to be like Google or be like Facebook
- 40:47and they don't need to be built for this gigantic amount of
- 40:51scale. Talk to me more about that.
- 40:53Yeah. I think like the I think like
- 40:55the biggest example that's in front of our like faces is dot
- 40:59DB. And I think like in a world
- 41:01where, you know, let's say Google comes up with like big
- 41:05query and like snow, there's like snowflake that has data
- 41:09breaks and there's Presto spark. A lot of these like very large
- 41:12scale batch data processing solutions.
- 41:15They typically came out from like very large companies
- 41:18because they needed it and they were kind of shoved down
- 41:21everybody else's throat that this is basically what you have
- 41:23to use, right? Even if I don't have that much
- 41:26data or even if I don't have that much scale, I still need to
- 41:29use the system and deal with the complexity of like using the
- 41:31system. It's like, you know, if I wanted
- 41:33to go from like San Francisco to New York instead of taking
- 41:37commercial flight, I need to fly like a fighter jet and sort of
- 41:40like take deal with the complex. It's like just not something
- 41:43that's like near, but you know, some people may need it.
- 41:45And so that's why now I have to use it.
- 41:47And I think like the recent popularity of like Duck TV is
- 41:50like a good example of it, right?
- 41:51Where people are saying that like, yes, I mean like these
- 41:54Snowflake Big Query solutions make sense for like some kind of
- 41:57workloads and not all kinds of workloads.
- 41:59And I need to look at like the workloads that I need to support
- 42:03and whether they fit better in Duck TV or Snowflake and you
- 42:07know, Big Query, etcetera. And we see this as well where a
- 42:10lot of data pipelines don't need like very complicated
- 42:13distributed multi parallel like batch processing solutions.
- 42:17They're actually significantly simple to build on, like simpler
- 42:20tools. We've seen that.
- 42:23I think we've seen this in the batch world and I think we will
- 42:28see this in the streaming world as well where people will kind
- 42:32of like look at systems that are significantly simpler than Fling
- 42:37or Spark streaming, etcetera and look at like building these
- 42:41systems on top of such primitives.
- 42:44Streaming. I think it's a little bit early
- 42:46where there maybe there is nothing as popular in streaming
- 42:51as what dot DB is in the batch world.
- 42:53And I think that's a wide gap there that there are some
- 42:56companies that are like addressing that, but nothing has
- 42:58broken out as as as much as dot DB has in the bad side.
- 43:02And I think once we enter that world, I think it'll be
- 43:05interesting to see how people are choosing like simpler tools
- 43:09like dot, DB, etcetera, versus like more complicated solutions,
- 43:12both across batch as well as stream.
- 43:16Dot DB is known for its user experience and I think people
- 43:20love that. The simplicity of it or just
- 43:23like the developer experience too on top of it is magical.
- 43:28And why do you think it is that in the streaming world we
- 43:33haven't seen that equivalent yet?
- 43:35I just think like streaming is slightly more difficult problem
- 43:38to solve. Especially I think you need to
- 43:42think about like ongoing state much more than you would need to
- 43:46think of need to think of in a batch world.
- 43:48A batch workloads are typically a little bit more ephemeral,
- 43:51like you can spin something up, computer and then throw it away
- 43:54because you have the results. Streaming is more of an ongoing
- 43:57thing where you need to continuously keep maintaining
- 43:59state and that might itself grow over time, etcetera.
- 44:02It's just a little more difficult problem to solve.
- 44:04But I'm pretty convinced that like, we will see something like
- 44:07that show up like in the next 5 to 10 years, just possibly or
- 44:11possibly even sooner. And I've heard a lot of folks
- 44:16talk about how streaming is a necessity and everything
- 44:22eventually will go to streaming. Do you believe that?
- 44:30I, I don't believe that, to be honest.
- 44:32I think maybe I have a little bit of a contrarian view.
- 44:35I don't see a world where people need to always only have
- 44:40streaming data and everything within streaming.
- 44:44The batch processing systems are getting very, very powerful and
- 44:47dealing with like large amounts of like data.
- 44:50The streaming systems are very good at getting like the recent,
- 44:53recent data, right? I'll give you like a database
- 44:56analogy, which I think like may make this slightly simpler,
- 44:59right? So for example, we've always had
- 45:01like transactional databases like Postgres, my sequel,
- 45:04etcetera. And we also had like analytical
- 45:07databases, like for example, Snowflake Big Query, right?
- 45:10And analytical databases look at like fast historical data very
- 45:13effectively. And the transactional databases
- 45:16are very good for like changing one draw or changing one data
- 45:18point, etcetera. And in the database community, I
- 45:21feel like there was this time when people felt that we can
- 45:25just have one system do it all like, and they had like this
- 45:27system called H tab hybrid transaction analytical
- 45:31processing. So they can have one system that
- 45:32can do both like they can do transactional as well as like
- 45:35analytical. And these systems did come out
- 45:38actually. However, it turns out like these
- 45:40systems are, they can do a mediocre job at both analytics
- 45:46as well as like transactional. And the buyer on the other side
- 45:49is looking for a best in class solution for analytical
- 45:51workloads. And they're looking for a best
- 45:53in class solution for transactional workloads.
- 45:56And they're not OK with like a solution that does a mediocre
- 45:58job at both, right? And so I feel that even if like
- 46:02streaming, even if we get to a world where like everything can
- 46:05be done in streaming, I'm fairly certain that like there will be
- 46:09parts of it that are like more mediocre in performance and
- 46:12overall these experience than for batch.
- 46:15And so I, I do, I do think that we will be probably entering a
- 46:19world where each of these systems will exist and they will
- 46:22just be significantly more powerful doing what they do best
- 46:26essentially. Yeah, just leaning in to their
- 46:30strong suits. Exactly, Yeah.
- 46:34Is there anything else that we didn't touch on that you want to
- 46:37talk about? I think the one thing that we're
- 46:41seeing interestingly that I think we may see more is bring
- 46:46your own cloud. And what I mean by that is a lot
- 46:48of times people have this like negative feeling about vendors
- 46:52because a lot of vendors want all the data processing to
- 46:55happen within their account. And a lot of customers are like
- 46:59you're dealing with sensitive data and I don't want to dearly
- 47:01my account with the Warp Stream acquisition be seen Confluent
- 47:07now offering BYOC solution or bring your own cloud so your
- 47:11data can still live within your account.
- 47:13Red Panda is doing BYOC and they're doing very well with
- 47:16that. We're seeing database all
- 47:17already offer like a BYOC solution.
- 47:20Snowflake historically has not done that.
- 47:22They've kind of been in the world of like all everything
- 47:25live within Snowflake and give me all your data and I will
- 47:27store and process everything within my account.
- 47:30I think screaming solutions, I think as well as batch, I think
- 47:33will probably more move towards the BYOC solution.
- 47:39And I think that will make for a lot of companies accepting
- 47:43vendors even more easy and a little bit less challenging than
- 47:49it is right now. So the BYOC is just like the
- 47:55vendor goes to wherever you are. Yeah, exactly.
- 48:00Like basically like the vendor will deploy their stack in your
- 48:03cloud account instead of like asking you to move your data in
- 48:08their cloud account essentially. Yeah, that is a trend that makes
- 48:14a lot of sense to me. Yeah.
- 48:16I think, like historically, vendors have been a little bit
- 48:17opposed to that, but I think they're realizing that the
- 48:20gravity is where the data is, and it's easier to move their
- 48:24compute systems and to move any vendor's data into anybody
- 48:27else's account. Exactly.
- 48:30It's so hard to get that data to go somewhere else just because
- 48:33of the sensitivity of the. Data.
- 48:36Yep, exactly. Yeah.