Devreal

chris richardson interview revised 3 17 16

chris richardson interview revised 3 17 16

Recording: chris richardson interview revised 3 17 16

hello everybody I'm Alexa crabber of the organizer of SF scholar and here we are on Lakeisha trade shift where we have an awesome it up about micro services and we'll have two great oaks and we hear what also have chris richardson who is the founder of eventuate which is a new startup basically helping folks bill becker services welcome Chris thanks good to be here so tell us about the eventuate yes we're eventuate is a platform for writing event-driven microservices so it supports event sourcing & Seek urs mm-hmm architectural II it consists of a server an event store mm-hmm and then there are language and framework specific libraries that you would then use to write your micro services for folks with all wat secure SS what does mean oh yeah so c QR s is command query responsibility segregation and so the idea there is that you actually split your application into two parts the command side that handles updates so HTTP puts posts and deletes and then there's a separate query side that handles well queries in other words HTTP gets so it's a separation of responsibilities mm-hmm and so if its sourcing comes kind of long traditional software engineering can you talk about what brought it to life that a why event sourcing became such an important thing where is it usually used what kind of problems its souls oh yeah so event sourcing I mean i-i've I mean I forget I when I first learned about it was quite some number of years ago and but it was always a curiosity mm-hmm and then a few years ago 23 I started building applications with what is now called the micro service architecture mm-hmm and one recurring problem that you run in to is maintaining data consistency across each microservices database in the old way of building monolithic applications you had a monolithic database and so you can just use regular acid transactions but in a micro service architecture each microservice has its own database and yet you can't use distributed transactions yeah sort of the cap theorem and the fact that most modern technologies don't support distributed transactions so that pushes you in the direction of an event-driven architecture and event sourcing for me prove to be a really really good way of creating an event-driven architecture so you're building events into the core of your business logic which then as sort of a natural consequence can can be published by those microservices consumed by another microservice which can then update it stayed in response to that event mm-hmm interesting so so you you have a lot of experience software engineering can you tell us a little bit about a career and kind of how did you logically arrived at my car services from somewhere in the beginning you know someone asked me oh is that some other conference they interview they asked me when did I first get into computers so way back in the beginning I think when I was a teenager I discovered a book on computer hardware i think i was like what pro I suppose 13 or maybe even 12 huh and it just grew on me okay at that point so yeah so from a young age I've just been into software and spent some number of years building Lisp systems so that was in the late 80s Early 90s which it's incredibly sophisticated runtimes you know more generational garbage collectors and incredibly rich IDEs and which it's taken the mainstream community a very very long time to catch up to where Lisbon also small talk were 30 plus years ago from what else did i do LOL ong the way and ultimately i ended up programming in java hmm wrote the book pojos in action back in 2006 and then i started tinkering with amazon ec2 mm-hmm back when it was really really obscure just happened to find out about it and was just blown away by the notion that you could prove with an API provision up to 20 servers for ten cents an hour 19 2006 that was like a shattering and now we kind of take it for granted right right so I ended up creating a path school Cloud Foundry that let you with just 11 clicks of the mouse deploy a java web application on ec2 on an apache tomcat my sequel stack mm-hm and somewhere around i mean i think it was 2010 I you know it sort of been struggling with building these large complex monolithic systems and i discovered this fantastic book the art of scalability mm-hmm run in the book there was this three-dimensional model of scale of scaling and one of the dimensions was the y-axis which was functional decomposition and which basically translates into the might into the micro service architecture and it was like oh wow we can start building applications that have functionally decomposed instead of building these large complex monoliths mm-hm and so i just got super interested in that architectural style started prototyping things you know using what is now the micro service architecture they actually first gave a talk about it for years ago mm-hmm April spacek yeah I think it was like April beginning of April end of March 2012 mm-hmm and I just got increasingly interested in the micro service architecture since then so now obviously it's a very popular topic and so there are multiple peoples doing multiple ways so so we have to talk today and so Jamie Allen from light band is gonna unveil you know light bends all new way to do this called logo which we're going to learn about and and so I'm wondering about two things first of all is their kind of room for everybody here are we kind of the initial exploration phase where a bunch of stuff will be thrown around and then eventually we'll conversion something or is it more kind of a service industry where essentially everybody needs to build the services and you know it's kind of consultancy right so it's so people will build them and then here until a separate because they encapsulate pieces right and everybody has different pieces obviously different sizes and so you always need people when they'll do their own way and kind of where that is your startup come in like what do you see is a product here is it is it the service I can help people are going to teach them or is it software stop right which they can take and implement em yeah so so my my company's product what couple comes in two flavors so so first off so the client libraries themselves will just be open source just freely available the actual server will come in two flavors one will be as a service mm-hmm so hosted cloud style paper use mm-hmm and then the other form will be a more traditional software download for those people who want to run it in-house mm-hmm so is it a single server or is it a server / service because the idea of decoupling means it probably want to isolation so does every service of reclined have their own datastore for instance or do you have in a single server can walk us through it oh yeah that no it's an excellent questions so so the effective model would be logically it's a single server hmm but then each service has what is essentially its own schema so within the server that ace service war hat will own a set of aggregate types they belong to that service and only that service can access them okay so it's sort of logically one but sort of or physically one I should say and then logically is like partitioned okay and you need this physical collocation because you want to serialize the events we should have a wrestler in order to do the van sourcing you need the event log right yeah they're in a sense each it's almost like each advocate is effectively its own mini event log okay so so it so it's kind of ice you know so it is sort of ice you know per service in many many regards but sort of operationally it's like one endpoint that you've like it's a host like in the same sense that you talk to a my sequel instance or a casar or a Cassandra cluster for example there's just one service that you talk to okay so so i think so i think yeah the topic of your talk is micro service and skull in java right and so that's kind of the agenda today we have you know have both things rights also live band is going java thirst and you have a lot of experience of java so I wonder how do you see these two communities interact right so light bands that is basically gel first but encapsulating scala as an architectural implementation exposing java api ice how do you see you know java skull interact in the world of micro services um what one of the nice things about the micro service architecture is that it naturally lends itself towards polyglot programming so services will be written in a mixture of languages mm-hmm so even today right I mean like I suppose in some ways I have a I mostly reside in the Java or the JVM world so so yeah I write in Java I write in Scala but then there are other so there's no Jas for instance right I mean that that's a great candidate for writing microservices likewise there's a whole community that's the writing microservices and go just so so I think we're moving into a polyglot future we're basically initial ology couples yeah API so it's sort of like one provider the service implements its API it doesn't matter what language is written in least from a pure technical perspective I mean organizationally there's governance issues mm-hmm you might want to think carefully before you allow a developer to go right there service in high school for instance so so basically even you you're the main driver behind v28 right like for for a while you were at those it's just just you and your idea right so how do you plan about growing and competing with light band IBM you know all the providers who bicycle coming to the market and say you know as a service organization look of all this market services have all this consultants how do you see positioning with this offering how do you see basically you know using that in the marketplace is there any shake and compete with others yeah I mean I obviously you know the market for products that's poured event-driven microservices is going to grow right and so look like band to vented with legume hopefully I said that correctly and you know and I'm sure there will be others so on the one on the other hand if you actually would compare the architectures of the two products that quite differently represent different trade-offs mm-hmm and so they offer genuine alternatives some will you know which will appeal to more to some people than others so that's quite good and yeah and certainly right now I mean my startup is small mm-hmm doesn't have vc funding and so which was your old man yeah but you know I'm working working with other people but on the other hand you could say well I look back at the original Cloud Foundry right you know similar situation in fact and you know in a short amount of time we were able to create quite an awesome product um the some companies thence then spent millions of dollars trying to replicate the functionality that we had created so I'm quite comfortable with the idea of competing with larger better funded communauté competitors mm-hmm interesting i think you bring up variances point that different microservices architectures can appeal to different kinds of customers because obviously if you do a cloud hosted version some people will use it some people want right and but we do like a lot of people to help and will you know eliminate some some hustle that otherwise have to do but some people want to do everything on Prem and full control right and so yeah so it's kind of innocence it probably probably means that the the market will segment in two different kinds of users for different kinds of architectures yeah and then you know what I think also I'd say that one nice feature about eventuate is that architectural II it's not a JVM specific solution either it's much more able to support a variety of services written in a variety of different languages all right so working to learn more about eventuate other things developers can download oh yeah absolutely so you can go to eventuate do you can sign up to get credentials API key to the early access version mm-hmm and there are various sample applications in github alright just ready to go yeah yeah so really looking for people to kick the tires and give feedback and help shape the direction of the product sounds great so we're looking forward to a talk and we're excited about this this new company and hopefully folks go to github get eventuate and play this yeah cool thanks thanks