I speak with Tanmai Gopal about Hasura, an open source and hosted platform that brings instant GraphQL APIs to your data. Also features my weekly round up of geeky news including the best game consoles ever, GPT-3, and more.
Chris Ward 0:03
Hello, and welcome to the weekly squeak your weekly geeky squeak with me, Chris chinchilla. It’s been some time, I took a little bit of a break. no particular reason I had been doing a similar format of the podcast for some time, wanted to stop for a bit and think about what we wanted to do next.
So an upshot of that in some ways is I’ve decided to experiment more with video. I was already experimenting with my dx live stream, my developer experience live stream sorry, and a few other things. And I quite enjoyed it. So I am bringing back the podcast I’m also adding on a video option that you are probably watching if you’re seeing me talk, or you were just listen to the audio version of and at the moment, I’m still experimenting with that and the best way to record interviews with people and random places.
So the video will definitely change over time, but wanted to get on with it and get started with it. So today I have an interview with hasura who bring a graph qL endpoints to to any quote unquote application. And first, as always, haven’t changed the format that much really apart from releasing in different formats. Let’s start with a few links of the week. First, this is an article on manjal Kai Chev on D zone, the top 13 GitHub alternatives in 2020 free and paid no particular valid reason I was looking at some alternatives to GitHub and get lab and this lists several you probably know of things like
self hosting ketosis i think but then also some others I came across a coach it was one that was quite interesting and and also So SourceForge interestingly, and a couple launch pad from canonical was quite interesting. And I think the interesting thing I found with this is that they all are fairly comparable in feature set these days, which is which is sort of odd when you think there’s not much else you could do to get hosting new kind of offer the same sorts of things that everyone else offers. And I wonder if there’s something different that someone could do, but anyway, if you’re looking at an option, a different tentative do GitHub or get lab and then have a look here and and see if any of them spark your interest or if not,
maybe start your own.
Next, this was something called on wired from the author from Jan volley. Jan Volpi jelly, called how London’s Silicon Roundabout dream turned into a nightmare. Silicon Roundabout is a roundabout in Old Street, these London. Interestingly, I remember Whoa, wait, that was a very different place, actually used to do a lot of gigs around there and do a lot of recording around there. And then over the few years since I left London, I saw it really changed quite a lot to this kind of startup Mecca. And it’s interesting because a what this story covers a lot of different things. It’s sort of built into what has happened now, you know, when you had a physical place that governments and lending schemes wanted to bring people to, and then people are not going to that place anymore, for four reasons. And what happens to that place? You know, there’s a lot of businesses and things that grew up to support, places like that you have places like we worked in Google campus that rely on people are going there, and they’re not going there. So how does it change? But it also looks at the more longer term, and how often startup hubs kind of say, Oh, we want to create an environment where someone can be the next Google not realizing that, of course, the path to the next Google is littered with Companies that fail and people who get nowhere. And and often, the next Google, if you really want to have that kind of presence in a place is Google, or its companies like Google. So you often have to kind of invite them in to bring in the other people, which is a certain irony. And but that’s often the way it is. And I guess a lot of this article is talking about the the dreams and ideals of a startup ecosystem in a place and what the reality might end up being and how that reality can often end up stinging the people you’re trying to encourage in the first place, rents go up. And the small startup, the small, scrappy, innovative startup can’t actually afford to have an office in this place that was meant for them in the first place. These sorts of things. Anyway, it’s an interesting article. I think it’s probably probably fairly comparable to many, many other sorts of locations around the world and not unique to our street roundabout at all. Probably. San Francisco has been like this for some time and and in many other places. Around the around the world as well. Next, I’ve been sort of following this story for some time. And a few people reported on this this is from Aram subedi in particular, talking about GPT, three, an AI from open AI. That’s good at writing things sort of strikes fear, in many writers heart and actually an idea that I was experimenting with very, very, very loosely, some time ago. And trying to write fiction with an AI. And we’d like to try it with open AI with GPT three, but I think you have to inquire for accents. And I’m not sure if experimenting is access faces that will give me but anyway. And so this article details some examples of Harry Potter written by Raymond Chandler, or generating a press release, things like that. Harry Potter by little Wayne a little way, sorry. And all sorts of strange examples and actually They make a sort of a sense. I think these are still short, short form, which has been one of the complications of getting things to write long form. But I have also seen other people try GPT three for that too, with a limited degree of success. So it’s interesting, I hope, and I get the impression that a lot of these sorts of tools will still be used more as assistive tools instead of generating it completely. But I think there’s a lot of a lot of sort of lowbrow cheap, mainstream fiction that could be mostly generated and I would hazard a guess that a lot of people would not necessarily notice the difference. controversial statement, maybe that’s what they’d be. It’s my initial ideas of trying to write something like a romantic comedy
or a rom com ROM romantic fiction
through an AI because sometimes they seem very formulaic. But anyway, I will get there eventually and try it. Hopefully. On the subject of automating roles that we thought would not be automated, this was from Michael akitas, on the O’Reilly blog, talking about automated coding, something that came out of Microsoft bill. Yes, I’m catching up with a few links here. I’ve been away for a while. And this is a demo from Microsoft of generating code. And actually, this is somewhat similar in net, it’s good as an assistive technology. And bear in mind, this is Microsoft. So this is probably something they want to put in things like Visual Studio code. Assistive tooling, which is already there IDs already helped you a lot by generating not so smartly, but by generating things for you. And this is somewhat connected to that in many ways, actually. So it’s not massively different. And it doesn’t really cover the aspect of programmers having to connect things connecting API’s and that sort of thing, which is actually what most programming really is. So there’s still a lot If this kind of work between processes that will still need to be done by programmers, it didn’t get to our idea. But still, it is interesting as always, going back in past a little bit Firstly, this is an article from Ezekiel Bruni, on the web design a demo blog. Again, from a few weeks back, the memory of flash 920 16 2020, flash has finally been declared dead. And many people a little bit younger than me, we’re not really remember what flash was apart from being a pain more recently, but flash actually opened the doors for a lot of the modern web. It was of course closed source and it was proprietary, but it actually enabled one of the first things that enabled interaction on webpages, passing values and things like that. So we should not forget its legacy, even if we would certainly like tificate. It’s a memory hogging plugin. Going back even further in time, An article from the Guardian by Keith Stewart, the 25 greatest video game consoles, right? Always love this kind of stuff. This is written by The Guardian. So it has a mostly European focus, which is nice nice to see Sega Master System Sega Mega Drive and not the Genesis. And but it also includes things like 3d go, which came out of Philips, of course, which is a Dutch company, I’m not hundred percent sure how well known they were actually in the US. But yeah, and number one, scroll down. Actually, no, I don’t want to spoil it for you, but it’s probably relatively predictable what it might be. But I was quite pleased to see some of my favorites on there. I’m not a huge console person, but like the masses and the mega driver, definitely in there. A little more of a Sega person, not a Nintendo person. So I’m disappointed by some of the options on the list list list, but I do acknowledge that influence. So this And finally, this is again, going back a little bit, but another article from the Guardian from Simon Osborne into the office the quiet grinding loneliness of working from home. And I think we will be now working for some of us have been working from home in some capacity for a while we’ve got used to it. But this is quite an interesting article and especially focuses on a city like London, where this ideal of working from home is not a reality in many big expensive cities and you have no space and it talks about people working in bed all day long. perched on a kitchen table, these sorts of things, which is not it will be fine for like an afternoon but for months and months. It’s actually very uncomfortable. Very bad for your physical and mental health. And it’s quite fascinating how for so much time so many of us spoke about I really like to work from home, and then it becomes a reality with lack of choice. And we realize it’s not all it’s cracked up to be which is not surprising. Many of us who’ve worked from home for some time, have kind of intentionally set up things to be able to do that and comfort all we know the negatives of it. We could have told people but I found this quite a good pragmatic article about the realities of working home for many. And we forget often not everyone lives in some giant house in the middle of the countryside with three spare rooms. Our people live in pokey tiny apartments with next to no space whatsoever, and never meet anybody if they don’t go to work and things like that. It’s Yeah, and I’m glad someone wrote an article like this. It was shared quite widely, and I think justifiably so. Because it really spoke about the reality of the situation for many and a lot of focused on glossing over this and talking about the kind of living the dream. Anyway. Okay, so now is my interview with Hazara and their graph qL for any application, enjoy.
Tanmai Gopal 11:48
I’m done. I’m the co founder CEO. So we started just about two years ago. And before that, before that, I used to run Extra consulting, along with my co founder, the founder. And before that, I used to be freelance consulting in the, in the machine learning and computer vision space. And that’s kind of where I did I did my bachelor’s and master’s. And we are scientists specialized in computer vision. And then I did some consulting for a while, and then I was like, Huh, I want to get into something more real ironic that
a little bit of time, since then, it turns out everything is machine learning. Now, so so you know, but but, but my interest was, my interest was kind of towards towards the more systems side of things. And that’s kind of how we got started with what we’re doing today.
Chris Ward 12:47
And it’s interesting you say that because we’re here to talk to Sarah which the the very large slogan on the webpage the first web page is make your data accessible over graph qL I would actually like to go back and cover what that means in a minute. But that doesn’t instantly spark thoughts of machine learning, but I’m sure there’s some going on behind the scene in this. But let’s, let’s, let’s maybe go back a step. Graph. qL is not, it’s not new, but it’s not that old either. So what is, to be honest with you, this is a fairly technical audience, most people will probably know what graph qL is, but or at least heard of it. But in relation to a developer’s sort of daily daily workflow, what is it? My Why might they want to use it instead of eruptions?
Tanmai Gopal 13:40
Got it? Now? That’s a really good question. So so so the easiest way to think about graph qL is to kind of first understand the layer that it’s at. Graph. qL is a technology specification. It’s not a it’s not a it’s not, it’s not a technology that runs for you. It’s not like Kubernetes or Docker or something. It’s a It’s not a database. It’s, it’s just a specification, very similar to how soap and rest and oh, data are specifications of API. So graph qL is just a newer generation, newer specification for what API schema? graph. qL is kind of one of the, it’s kind of a more. It’s a nicer API that deals specifically with JSON data. So the idea is that instead of having, instead of having a REST endpoint, where the idea is that you’re thinking in terms of resources, and each each endpoint kind of is represents a resource, and then operation on resource, and then the response of the API has, typically it can be anything but typically the responses in JSON format, and the JSON structure of represents, you know, some kind of output, right? If you’ve been serving something, it gives you the output of like a insert successful and here’s some data for you. Or if you’re fetching some data, it gives you some data. And it turns out JSON graph qL kind of uses JSON As a first class thing, it says that JSON is the only data format. And if JSON is the data format, and instead of thinking of our API resources as discrete, disconnected resources, we think of our API resources as a graph, or a movie, or perhaps a more accurate word is a gigantic document.
Your your Think of your all of your API models together, as if it’s one huge, huge JSON document, right? And a JSON document essentially is kind of a graph, right? It’s kind of a graph of connected things, right? So you have like, you know, if you have articles and articles have authors, and authors have addresses, they have profile information, right? So you can imagine that kind of nesting in your mind that you have an article list of articles and each article object has an author key, and the author key now has some data and then that has some more data nested data. So you can think of it as one gigantic document or a list of documents or a collection of documents. And that collection is basically
graph and the fact that you’re operating. And the idea behind graph theory is that you’re operating on this graph, instead of operating on discrete, disconnected resources, right? So you’re, you’re fetching a slice of data from this graph, right? You’re, you’re, you’re you’re you’re making a mutation, you’re running an operation or, or command or an action that will go and change something in this graph, right. And that’s just kind of a slightly different view of the world. But the reason why it’s amazing is that it changes the ergonomics of the way you use the API massively. It’s not, it’s not really a very big shift in, in anything. It’s not it’s not. It is a big shift in a few things. But it’s not really that much of a fundamental technical shift. But the idea that you can now as an API consumer, think of your resources as a graph, and then you can just query a slice of that graph without having to depend on like, you know, what endpoint of my query, I have endpoint one and endpoint to where they have slightly duplicate data, right or as Point three where I want more data. But that doesn’t exist, that could go back to the developer, the API developer and ask them for more specific endpoint three. So you don’t have to do those kinds of things. And you just get a really nice API. So. So graph qL is kind of like an API that’s kind of shamelessly designed for JSON. And it’s, and it’s also shamelessly optimized for the ergonomics of API consumption and API integration. That’s the second point. The third point is that it’s a it is an API specification that comes with types, which makes it easier to build automated tooling without that to the API integration consumption. So those are kind of I would say, three kind of main sets of graphs.
Chris Ward 17:40
And before we get to history, because there’s definitely a space where it fits in quite nicely and I have personal experience of this is for the background that you described, or the background that other founders of the company described what brought you to here like what, what problem were you trying to solve was it Just in case or in the market, like why create the company the product in the first place?
Tanmai Gopal 18:04
that’s a that’s a really good question. So, so one of the things that I mean, during during that, that selling days, what we were doing was we the way we, the way we kind of that company was we were essentially a small platform team and our consulting team, and and fairly large consulting team and the platform team was basically building tools to help the consulting team in the work they were doing with the customers, right. So our customers would include some of the world’s largest banks, they would include like in one to 2% startups, right. And as we kind of worked with them, and this was, you know, this was this was when Docker was just hitting 1.2 Kubernetes was just hitting 1.0. Right, these containerization was just starting to happen. The entire framework wave that we take for granted today, react and angular view was just starting to kick off, right. And so when we were kind of witnessing and watching all of this happen, we realize that there are two broad things that are happening. Across companies of all sizes across teams of all sizes, right? We’ve seen that the ability to build applications, the compute aspect, is is improving beyond it, the ability to write code and and and just run it and forget about it is becoming better day by day, whether it’s a website or a mobile app, or whether it’s a serverless function, or it’s some compute that’s running in a container. All of all of this kind of logic, application logic that needs to run, that’s becoming easy, right? And that’s becoming it’s the story is becoming better every single day. And on the other side, databases are becoming richer as well, right? You have databases are going from single node databases to just being distributed by default, to be scalable by default, right to be resilient by default to, to, to having a schema by default, right where you’re saying that you want the flexibility of a no SQL system, like JSON collections, but you also want the database to absorb hard problems around maintaining a schema and maintaining reference
Integrity, which is, you know, that’s kind of what mongos roadmap has been like. That’s kind of a newer generation of new SQL databases. So so as these two things are happening, the one gap that is emerging that everybody is still building manually is, is the API layer. And it’s the data access layer. And this is a piece that people are just building by hand again, and again and again, right, because it’s absorbing a weird kind of technical complexity and, and some amount of some amount of a domain problem, his way of solving both of these things, which makes it you know, which has made it historically a little bit hard to automate, but is and it’s also something that but it’s also very repetitive work, right, what you’re doing is you’re standing up an API service, you’re connecting to all these different data sources that you have, right? You’re mapping those models, you’re then setting up relationships between those models, you’re setting up security rules for those models, you’re making sure that the API service can scale to hundreds of thousands of concurrent users. Because databases don’t scale like that. Databases scales too.
With a few thousand concurrent users with a connection pool, right? They don’t scale to mobile apps that can handle like 100,000 mobile apps running concurrently that databases don’t handle that kind of load. So you always build this API service in the middle that represents a performance and a security boundary and capture some amount of domain domain knowledge, which is the mappings of the models, relationships, security rules, and you have to embed that into the service and you stand this up, we would like this is is unnecessary work. This is this this, nobody should be doing this. This should be automated. And so we invent a way of doing that. Again, the details of it. But so we basically meant to be doing that we had our own version of graph. qL is the API, which we call our QL. And it was a JSON based API. And that was the API that we use, we developed it internally. And then at graph qL, came out. You know, we were very skeptical of graph QL. We were like with a complex, it’s hard to build. It’s easy to use, but it’s hard to build. You know, it’s not going to become popular, but it did become very popular the client side today The adopts that this kind of goes to say the pool that people had for wanting to get a nicer API to consume data. Right. That’s what it represented there, even though it’s kind of a more complex specification, the ease of use that it brings to the consumer is so high that something that we could ignore, and we added support for graph QL. And, and that’s, and that’s when we decided to open source technologies. Yes, we added support for graphical view. So that’s that’s kind of how it happened.
Chris Ward 22:27
And, and you you’ve addressed some of my concerns and confusions with graph qL, which is sort of the gap I think you’re trying to fill is a lot of the documentation, the kind of promises of graph qL is always like, it always feels like it misses something. It says, you know, this is spec and it does this. And it’s amazing, and it’s great. And you look at these examples, and you you sort of understand them, and then you try to figure out what you actually need to do to to Make it work for you. And that actually always seems to be something that’s very missing in everything I ever read. And I stand what I’m actually supposed to do, and actually understanding that it requires a fair bit of change to your application and things like that. I always find that a slight lie with graph qL
always annoys me about it. Yeah. difficult.
Tanmai Gopal 23:31
You’re, you’re 100% right. It’s one of the things that is one of the reasons why I was very skeptical about graph QL. Is that, you know, it’s, it’s one of those, you know, historically, we’ve always seen technology becomes simpler, right? We like writing a REST endpoint today, and serving it up right. To the entire world that can scale to millions of people is, is 10 minutes of work. It’s unimaginable how far we’ve gotten in just 10 years, right? It’s crazy, is we can still some But on the other hand, you have a technology like graph QL. That’s, that’s vastly more complex than what came before. Right? It doesn’t make things simpler. It makes things simpler if you’re a Facebook, which is why they invented it. But it doesn’t make things simpler for everybody else in the world wide definition is not Facebook. Right? So, so it’s very counterintuitive, but it was something that I was very skeptical of. And you know, I liken it, I like in Glasgow to be very similar to maybe in the 80s and 90s, where you’re looking at SQL systems, right? Actually, the SQL is a great API to use to consume data from a database. It’s amazing, right? But nobody’s building a SQL Server. We only people building a SQL server or database folks, because for them, it’s worth absorbing the amount of complexity that they try to abstract away and provide a neat interface on it makes sense to them. But nobody in their right mind goes and sets up a SQL Server. Right there is I mean, it is just from a technical standard. Point, all the API’s that we use today, you know, rest API’s JSON API’s, there’s no reason for us to have a separate protocol we could have done all of that work over sequel as well. sequel is just a specification, right? sequel, just a specification, I could have built a sequel web server, and my mobile app would have communicated with the web server and see what but but you just don’t do it. Because it’s, it’s very complicated. You have to implement a language parser you have to understand the SQL language, you have to parse it, you have to validate it, you have to check against your own internal metadata whether the SQL query is right or not, you have to implement essentially a bit of a compiler, a query plan or a query execution engine. By the end you’re doing that you’re like, nah, nah, unsubscribe, I don’t I’m not gonna pay. I thought I am going to use a sequel service like a database. And I will be done with that. Right. So I think it’s very similar to that right and you’re spot on with the fact that that is one of the things that gratitude is not very new gratitude is five years old. You know, by the time Kubernetes was five years old, it was it was on fire, right? I mean, Kubernetes today is just slightly more than five years old. Right? But it’s on, it’s on fire, like it’s everywhere. Right? It has a degree of penetration that graph qL does not have I’m comparing apples and oranges but just in terms of like thinking about technology trends and penetration, right. The reason why graph qL adoption has not been that that fast is because it is complicated. Like you said, it’s not it’s not easy, right?
Chris Ward 26:31
So this is where history comes in. I’m going to start with the open source version first. So yeah, the firstly the the the the tagline on the main webpage, instantly make your data accessible over graph QL. Is that also any open source version or version something else? Okay? No, that’s the open source world, okay. So, so if I was to if I had I mean, I’m making some assumptions here. If I was to have an old SQL based CMS, I’ve got posts, users, etc. And I want to convert it to graph QL. I can use a server or something like that. Exactly.
And what do I say? What do I do?
Tanmai Gopal 27:19
You see, so so let’s say you have like a database lying around, right? And you you’re like, oh, man, this database. It has billions of records. It has thousands of tables. But it’s this old system. I don’t want to use it. I don’t want to connect directly to it, because it’s hard to connect directly to it to get somebody to program against you. But I need to build new applications. What do I do? So you put a hustler in front of the database. What hustler does is, so there is a there is a build step, or like the step and the user is kind of configuring a surah and then after that runs, right, so as soon as you point to the database, Astra introspects that database, it loads up all the catalog models, all the table All the views, all the stored procs, everything that you have a load all the types that they have it loads that up gives that to you on a UI. And then what you can do is you can say, Well, I want these, I care about these models. And these are the relationships between these models, right. And so sometimes you have foreign keys in a database, sometimes you don’t have foreign keys, that’s fine, it doesn’t matter. You can use those foreign keys, or you can just use join conditions. And you can say, hey, this column on this table and this column on this table, they use to that, and that helps me create a relationship. So you kind of do these kind of annotations are basically what we call metadata. And you set up this metadata via UI. And then once you get used to the UI, if you prefer, you can just write the configuration file yourself. It’s just JSON and yamo. So you can just write the configuration file which represents that metadata. And then once you once you write that out, that’s it. So now becomes a graph. qL service, or has sort of becomes a graph qL API that will use this metadata to interact with the database. The two kind of key problems that we’re solving here is one that graph To a translation that, that the ergonomics of using a graph qL API and and the experience of having one large JSON document or list of documents that you’re operating on, which is nice. And to the security problem, which is that, you know, the reason why you the reason why you’ve historically not been able to expose a database directly to applications is because these applications today, are they not internal applications, right? They might be an application that’s, it’s it’s an Android app or a web app that’s live on that’s running on the device of a user. That’s not in your org, right? We’re not the context has changed from us being inside the bank, you know, Hey, Chris, you the database owner, and Emma is the Java developer. And we have written a Java app that talks to the database, and it’s all in the same building. And all of the users are all or employees of the bank. Right? That’s no longer the case. Now you have a case where the database is inside the bank building. Sure, maybe. But the app is in the hands of the user on an untrusted device that can be compromised by a hacker. It’s like it’s crazy, right? It’s It’s completely different. It’s the the application development context is changed. And so what hustler lets you do is when you’re specifying that metadata, you specify security rules as well. And these security rules are very fine grained and powerful. And what that lets you do is say that even if it’s an end user, that you’re using the graph qL API for an end user application, you’re able to fetch and operate on data that is scoped in the EU. So if you’re an end user, and you’re fetching your profile information, in your API call, there is nothing that you can do on your app that will ever fetch somebody else’s data, right. Or if you’re operating on your profile, it’s only your profile that you can operate on. But it’s not just profile, it could be a document. And the reason why you have access to a particular Google Doc is you know, you can have complex, you can have a very complex set of conditions. The Google Doc is public, or the Google Doc is as an editors list, and you are one of the editors, or the Google Doc is a viewers list, and you’re one of the viewers, or you are a friend of the owner of the google doc and that’s what you have access to this. Whatever. Whatever that Complex kind of set of conditions is also absorbed that in that metadata rule engine as well. And that’s kind of what makes the graph qL API useful. Right? That is nice to use, but also its possibilities.
Chris Ward 31:11
And as far as I could see, you’re just supporting Postgres right now. Yeah. Is there a reason for that? Just started on the roadmap.
Tanmai Gopal 31:22
It’s just on the roadmap. So yeah, we started off with we started off with Postgres, because, you know, Postgres is kind of hot, right? It’s kind of, it’s like, Uncle Uncle PG is cool again. Right? It’s like,
Chris Ward 31:36
Oracle is probably not.
Tanmai Gopal 31:40
It is a bit of a hippie, so that’s cool as well. Right. So So I think those those and of course, most cases, they can be rock solid, amazing database, right. So it’s, it become popular and that really helped because that was the first supporting using that as the first database to build the product in the community and mature the product offering was it was a great start. we’re doing, we’re doing a few more databases, we’re going to make an announcement sometime in about a month, month and a half in about four, six weeks. And then we do another set of databases towards the end.
Chris Ward 32:12
Yep. So just just to clarify for those baby who not so used to understanding how quite how graph qL works, graph qL itself is where it’s sometimes get it gets a bit confused, you know, you should think of graph qL, just the same as a REST API. The Postgres data is still the data. Exactly. It’s just yeah, it’s just a sort of
Tanmai Gopal 32:37
Chris Ward 32:40
spec on top, and I guess Exactly. So does, it creates the things like the spec for you mostly automatically and stuff like that?
Tanmai Gopal 32:47
Exactly, exactly. You so you don’t have to deal with the graph. qL bits of it, right? So you don’t have to deal with the bits of like, oh, here’s, this is what the graph qL specification is. This is how I make the graph qL query work. Well, this is how I validated this performance problems, how do I integrate a health check mechanism? And do it because graph qL API’s have a very different way of reporting errors, right? The the entire ecosystem of tools that we’ve had over the last decade and a half of like, you know, 400 or $400 $500. That doesn’t work with graph qL anymore, because because graph qL can return partial errors. Graph qL has this concept of like, you can make a query, that same query might fetch data from multiple sources. So you know, for example, with hospital, you might be fetching data from Postgres and from stripe. So you can join, you can join data across these data sources, right. So you can fetch data from Postgres and from Salesforce, or from Postgres and the legacy REST API. So instead of can consume Postgres less than raphaela data sources. So how would you make, okay, yeah, and so now when you make a query that fetches data across these data sources, one of those data sources might fail. And, and the way graph qL reports this is that you get a partial result, and you get an errors or list of errors as well. They tell you that certainly there’s no doubt. Now but but all of this is returned over HTTP endpoint that
always returns 200.
That’s just the that’s just the default kind of mention. Yeah. Yep. All graph qL clients and all graph qL servers forever just exchange 200. So from the point of view of an API gateway, or a health check mechanism, or alerting system that you have, that’s never going to tell you what’s going on. Because you’re just like, oh, everything’s dandy, but it’s not right. Because you have, because you have this partial everything. So those are the kinds of things that you figure out. And then you have to worry about getting in production, and especially in price environments. This is not, you don’t want to solve this part of the problem, right? You’re like no, I we fix this. We fixed reliability. We’ve gotten all of this working. There is no way that we’re going back and changing all of that tooling. Just to get back good work. So hustler kind of addresses that he makes sure that that compatibility with APM tools and alerting tools is all kind of maintained, but you still get the benefits of
Chris Ward 34:59
it. So just to clarify, will not clarify, but just to build on top of something you said there. And it sort of somewhat leads into what you have with the cloud offering. Yeah. So the cloud offering would imply that you are going to handle a lot of the, the running the graph, qL server, I guess. Yes. So if I’m doing the open source version, I still have to be what do I have to have running? If I want to run this myself then?
Tanmai Gopal 35:28
Yeah, yeah. So so the, the open source version is basically we ship it as a Docker image. Okay, so we release, maybe we can you can think of daily build, or you can take that versions. And you take this Docker image, and you run it wherever you want, right? You run it on your cloud windows, laptop, and then you connect it to your database. The cloud version is essentially saying that, well, you don’t need to have this Docker container running anymore. You don’t need to scale it up, scale it down and stuff like that. What you can do is keep your data sources wherever they are your own databases. wherever they are, and just kind of sort of cloud to them. So it’s kind of like the analogy that I draw is like it’s kind of like a CDN. But instead of a CDN that’s distributing static data pointing to static sources. It’s this is kind of like the dynamic data CDN. It’s kind of like a it’s fronting dynamic data, extracting operational data, instead of it fronting static data. So it’s kind of that’s kind of the mental model, right? So you have your API services is just this infrastructural component that exists on top of your data sources.
Chris Ward 36:37
Okay. So let’s just just break down some of the products you do have. So you have a reasonably standard suite of kind of the offerings for source kind of company. You have enterprise so on on premise, what do you what do you add? Yeah, there versus someone running on premise themselves, I guess.
Tanmai Gopal 36:59
Yeah. Yeah, so so so the three flavors are basically, you know, the Open Source engine that you can go take it wherever you want enterprise, like you said, which is the enterprise offering is intended to be an on premise of it. So basically, it’s, it’s kind of like a it’s a, it’s a version of hospital that is that solve certain problems that you have running in an enterprise grade environment. And you know, things around everything from security, performance, scalability, compliance, a bunch of those things, takes care of that. And then you still run it on prem, or you move to the cloud version, which is kind of like the enterprise version, but completely serverless. Paper, Pac Pac go or pay as you consume that come consumption and SAS model.
And so, so that’s
kind of the suite of three offerings. The thing that’s, I think is kind of interesting about the way that we think about the cloud version was the enterprise version is that when we when we give folks our enterprise version, they kind of have to host it and run it themselves, right. They have to deal with the operation. themselves, but the cloud version is, is kind of re engineered from the core. So that the hospital itself is is entirely is multi tenant to SAS. So unlike other open source offerings, where you often go to a cloud version, it’s essentially managed hosting. So it’s like saying, Oh, I have three instances of hustler. So give me three instances of hustle on your cloud. And this is the memory configuration and CPU configuration. So it’s basically becomes like a cost plus model, right? It’s a markup on top of what you would have had if you had AWS yourself. But what we’ve done is we’ve re engineered that so that you as a consumer, you never see how many Docker containers of hasura you have running, what the CPU and RAM is and what not right for you. It’s just like, you know, it’s the amount of data that flows to us, right. That’s how whether you have 100,000 concurrent users, a million concurrent users, 10 users, you’re making 100 API calls per second you making 10,000 API calls per second doesn’t matter. You don’t have to worry about it. We will take care of it. We make it a SAS, or we make your beta SAS, if that makes sense. So that’s that’s kind of the way we like to think about
Chris Ward 39:06
a cloud version. Okay. And so just to, to kind of wrap up some of the, the, how you fit into this landscape of what you’re doing next. Yep, I can think of maybe one, maybe a couple of other similar ish competitors to what you’re doing. And I’m guessing if I’m correct, you’re aware of them.
Tanmai Gopal 39:32
If I’m doing a good job
Chris Ward 39:34
of one, but I’m sure there is more than one. Right. So yeah, what do you offer in comparison to some other companies that are doing similar things? Should we say?
Tanmai Gopal 39:44
Yeah, yeah, that’s a that’s a that’s a that’s a very good question. that often comes up as well. I think some, I think the core, the core difference is we think of, we think of your graph qL API as a service that you should get And almost as a part of your infrastructure, not, that’s and so this this kind of instant, you know, they instantly make your data accessible over graph qL that’s kind of the hustler. That’s kind of the hustler approach, the the approach that some other that that some other players, maybe ecosystem have taken in the graph qL ecosystem specifically, is kind of an approach of saying, we’ll help you build your graph qL service. So it’s a it’s a, it’s a set of libraries that you use.