← All conversations
Languages

SF Scala: Evan Weaver Interview

Evan Weaver ↗With Alexy KhrabrovDate not documented10:51

FunctionalTV speaker interview from SF Scala event 236807300.

Follow the words

Read the transcript

hello everybody I'm Alexi crapper the hello everybody I'm Alexi crapper the organizer office of Scala he were a organizer office of Scala he were a locational former and with us we have locational former and with us we have Evan Evan this is the CEO and founder of Evan Evan this is the CEO and founder of fauna and we actually met I would say fauna and we actually met I would say about a year ago or more and talked about a year ago or more and talked about fauna as new kind of database and about fauna as new kind of database and now it opens his doors for the now it opens his doors for the subscriber meter for the first time so subscriber meter for the first time so we're really excited to be here and I'd we're really excited to be here and I'd like to catch up and see what's new with like to catch up and see what's new with form thanks Lexi yeah we moved into this form thanks Lexi yeah we moved into this place about two months ago before that place about two months ago before that we were in the top floor of a converted we were in the top floor of a converted Victorian near South Park oh yes that's Victorian near South Park oh yes that's where I first met you so before that way where I first met you so before that way or my basement that was a long time ago or my basement that was a long time ago but yeah we're 14 people now preparing but yeah we're 14 people now preparing for our public launch of phone NDB in for our public launch of phone NDB in March so we're rolling out previews March so we're rolling out previews especially previews of the serverless especially previews of the serverless cloud product and basically finishing of cloud product and basically finishing of the business side of things with billing the business side of things with billing systems improving tutorials systems improving tutorials documentation all that kind of stuff documentation all that kind of stuff that you need to use phone as a that you need to use phone as a self-service adopter in particular and self-service adopter in particular and the database has been in production for the database has been in production for a couple years now I'm in particular a couple years now I'm in particular Nvidia is our biggest early partner Nvidia is our biggest early partner neiva neiva on-premises deployment which is in three on-premises deployment which is in three data centers couple dozen nodes and data centers couple dozen nodes and they've scaled it up and down over time they've scaled it up and down over time so I remember we talked about so I remember we talked about Fona and I thought it's really a cool Fona and I thought it's really a cool way kind of to to use the database right way kind of to to use the database right because it's more than a key value store because it's more than a key value store right it's it's an object store can you right it's it's an object store can you talk a little bit about for now as kind talk a little bit about for now as kind of your core database what does it give of your core database what does it give you more than kind of traditional you more than kind of traditional databases give you yes so fauna is a databases give you yes so fauna is a temporal object-relational consistent temporal object-relational consistent distributed database our goal is to distributed database our goal is to basically marry all the kind of basically marry all the kind of different query patterns you it different query patterns you it typically is from different domains like typically is from different domains like relational document graph even search relational document graph even search analytics eventually into a single analytics eventually into a single coherent system so you can scale that coherent system so you can scale that underlying piece of infrastructure and underlying piece of infrastructure and use it for all your different workloads use it for all your different workloads and share data across teams share data and share data across teams share data across data centers because it's a across data centers because it's a globally distributed system as well and globally distributed system as well and basically get back to a world where you basically get back to a world where you can integrate through the database and can integrate through the database and trust that the database will be the trust that the database will be the single lever you can move when you need single lever you can move when you need to scale your application up and down to scale your application up and down right and so it for this you need right and so it for this you need basically two so you all right basically two so you all right everything inside of the base Iran everything inside of the base Iran analytics queries inside other ways so analytics queries inside other ways so you have your own DSL for the queries we you have your own DSL for the queries we should control what support yeah the should control what support yeah the interface is a functional interface interface is a functional interface similar to link in the c-sharp world you similar to link in the c-sharp world you use embedded ESL's in your application use embedded ESL's in your application languages and that means that your languages and that means that your queries are type safe you don't to learn queries are type safe you don't to learn new syntax you just have to learn new syntax you just have to learn phonosemantics and it's pretty phonosemantics and it's pretty functional too in a functional functional too in a functional programming way and you do things like programming way and you do things like my app and fold over the core database my app and fold over the core database primitives and page through indexes and primitives and page through indexes and you can do compute and you can do set you can do compute and you can do set arithmetic and that kind of thing and arithmetic and that kind of thing and ultimately you can write our very rich ultimately you can write our very rich query even more rich than sequel allows query even more rich than sequel allows remote it to the database and trust that remote it to the database and trust that the database will execute it in the the database will execute it in the maximally optimal way against the maximally optimal way against the underlying data interesting so I already underlying data interesting so I already like it right because you know I'd like like it right because you know I'd like you know I'd like my my query language you know I'd like my my query language to be more fun than psycho and if it's to be more fun than psycho and if it's functional it's even better so so is it functional it's even better so so is it is it similar in a way I mean this is is it similar in a way I mean this is closer to functional languages right closer to functional languages right because you know the problem of sequel because you know the problem of sequel it's it's so declarative right so it's it's so declarative right so basically you can lose track right and basically you can lose track right and to create a bunch of temporary tape to create a bunch of temporary tape tables have you kind of decomposed it in tables have you kind of decomposed it in weird ways so how does it feel to write weird ways so how does it feel to write like a long complicated form of queries like a long complicated form of queries to give it a program you like a little to give it a program you like a little free program which is gonna be basically free program which is gonna be basically run on the cluster yeah it's it's run on the cluster yeah it's it's exactly like that so you're dealing with exactly like that so you're dealing with immutable data structures and parallel immutable data structures and parallel computation but the commutation is computation but the commutation is explicit oh like you're you essentially explicit oh like you're you essentially you essentially compose the query plan you essentially compose the query plan in your in your query so you know what in your in your query so you know what the database is gonna do it's not gonna the database is gonna do it's not gonna change its mind and start optimizing in change its mind and start optimizing in a different way as your data set gross a different way as your data set gross you don't run explain to understand you don't run explain to understand which index it's gonna use you say these which index it's gonna use you say these are my indexes I'm gonna start with them are my indexes I'm gonna start with them then I want to do these operations I'm then I want to do these operations I'm gonna do this this set algebra gets some gonna do this this set algebra gets some results cursor through it that kind of results cursor through it that kind of thing so it's very explicit and that thing so it's very explicit and that lets us guarantee a very consistent lets us guarantee a very consistent performance profile as you scale your performance profile as you scale your systems up and down you can trust that systems up and down you can trust that the execution pattern isn't gonna change the execution pattern isn't gonna change interesting interesting so how do you feed your data base right so how do you feed your data base right like I think there is a lot of activity like I think there is a lot of activity in open source text to put together data in open source text to put together data pipelines right sort of Kafka feeding pipelines right sort of Kafka feeding spark reading Cassandra right on top of spark reading Cassandra right on top of messes how do you compare to this mac messes how do you compare to this mac stack effectively so umm I mean funny in stack effectively so umm I mean funny in a way it's a traditional relational a way it's a traditional relational database it's just not SQL so you can database it's just not SQL so you can use it as a sink for data you compute use it as a sink for data you compute somewhere else but you can also keep somewhere else but you can also keep your core business objects in it in a your core business objects in it in a fully normalized way compose them with fully normalized way compose them with queries push a lot of it um especially queries push a lot of it um especially index computation that you might do in a index computation that you might do in a second system like spark or second system like spark or elasticsearch intifada in terms of a elasticsearch intifada in terms of a source though because the underlying source though because the underlying data model is temporal you can get data model is temporal you can get change feeds for any query out of the change feeds for any query out of the system yes you can say like oh here's a system yes you can say like oh here's a distributed graph join an activity feed distributed graph join an activity feed well what happened between the last time well what happened between the last time I looked at I looked at now and you get a bunch of rather than now and you get a bunch of rather than just a different results that you get a just a different results that you get a bunch of change events that you can use bunch of change events that you can use to synchronize something downstream so to synchronize something downstream so the goal eventually is to internalize the goal eventually is to internalize all those concerns right now it works all those concerns right now it works really well as a canonical store for really well as a canonical store for fully normalized Business Objects in fully normalized Business Objects in particular social graphs that kind of particular social graphs that kind of thing or as a low latency distributed thing or as a low latency distributed sync for stuff you might compete at sync for stuff you might compete at upstream like he went essentially a upstream like he went essentially a document database that you can index and document database that you can index and scale because you have all this offline scale because you have all this offline commutation from ml privacy so where are commutation from ml privacy so where are you going to put it mm-hmm wow this you going to put it mm-hmm wow this sounds really really cool I mean it sounds really really cool I mean it sounds almost like you know if I want to sounds almost like you know if I want to build a startup I can take this and build a startup I can take this and solve all the problems so I wonder what solve all the problems so I wonder what does you like impression from customers does you like impression from customers what are the early experiences when they what are the early experiences when they take this instead of a bunch of other take this instead of a bunch of other things I will do it what what what are things I will do it what what what are the thing I mean like the usually people the thing I mean like the usually people don't believe it can be true like your don't believe it can be true like your queries are isolated like you can queries are isolated like you can dynamically provision where your data dynamically provision where your data lives you can use our server less cloud lives you can use our server less cloud and not even think about the backend at and not even think about the backend at all and people have been so badly burned all and people have been so badly burned in particular by the no SQL movement in particular by the no SQL movement that they want to they want us to show that they want to they want us to show them so we have to do a lot of work to them so we have to do a lot of work to prove that the databases sound and prove that the databases sound and secure and performance is good and show secure and performance is good and show that on their data sets like you're that on their data sets like you're important here's the query pattern so important here's the query pattern so you can replicate what you already do you can replicate what you already do but now you get all these scalability but now you get all these scalability isolation performance benefits out of isolation performance benefits out of the system and people people like the the system and people people like the interface they're tired of SQL it's interface they're tired of SQL it's unsafe it's hard to reason about the unsafe it's hard to reason about the performance profile the security model performance profile the security model doesn't work with the way people write doesn't work with the way people write modern applications and like the proof modern applications and like the proof of that is people put our Elms in front of that is people put our Elms in front of other relational databases for of other relational databases for operational workloads so not having to operational workloads so not having to deal with that and meaning deal with that and meaning directly talk to your database again directly talk to your database again it's um what's the word refreshing it's um what's the word refreshing mm-hmm mm-hmm so so is it Soho is kind of your go-to so so is it Soho is kind of your go-to markets stage so you know out of stealth markets stage so you know out of stealth or yeah we're out of stealth we have or yeah we're out of stealth we have beta customers both on-premises and in beta customers both on-premises and in the service cloud we're looking for more the service cloud we're looking for more and we're preparing for our GA lodge in and we're preparing for our GA lodge in the next couple months so if somebody the next couple months so if somebody wants to try for my Oh hold the go about wants to try for my Oh hold the go about it I just go there website click the it I just go there website click the request invite link and we'll hook you request invite link and we'll hook you up and so can you can you dim what the up and so can you can you dim what the center metal like with a realistic center metal like with a realistic application yes all this yeah Chris application yes all this yeah Chris Anderson I'm Chris Anderson who was one Anderson I'm Chris Anderson who was one of the Couchbase founders joined our of the Couchbase founders joined our team recently yeah he's working on a team recently yeah he's working on a surrealist presentation that'll have a surrealist presentation that'll have a do do aw s lambda executing the computer and aw s lambda executing the computer and phone as the backend and then you have a phone as the backend and then you have a fully server less end-to-end stack where fully server less end-to-end stack where you never have to think about you never have to think about provisioning and you can do even a provisioning and you can do even a globally distributed dynamic application globally distributed dynamic application you know fully service model I will you know fully service model I will claim dibs on this presentation once claim dibs on this presentation once already so it can show it's also sounds already so it can show it's also sounds a little exciting you know it's kind of a little exciting you know it's kind of it makes a lot of sense and yeah I mean it makes a lot of sense and yeah I mean like I can't wait to see it so you know like I can't wait to see it so you know thank you very much for inviting us thank you very much for inviting us looking forward to playing more with looking forward to playing more with this yeah are you this yeah are you once we play more of this we'll come once we play more of this we'll come back an eskimo questions thank you back an eskimo questions thank you thanks really appreciated

Recovered English captions. Automatic transcription may contain errors.

Keep exploring

Follow the guest, their work, and the ideas behind this conversation in the Devreal knowledge graph.

Evan Weaver on Devreal ↗
Independent by design

Your player.
Your subscription.

One permanent feed. Listen in the podcast app you love, with the conversations always at home here.

https://struct.fm/feed.xml
113 audio episodes available in the feed.