Menu
Sign In Search Podcasts Libraries Charts People & Topics Add Podcast API Blog Pricing

Martin Kleppmann

๐Ÿ‘ค Speaker
607 total appearances

Appearances Over Time

Podcast Appearances

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

for me reliability means fault tolerance primarily so meaning that a system should on the whole continue working even if like a network link is interrupted or a node crashes or something like that so a lot of the book is about techniques that support fault tolerance like replication for example so that's reliability scalability is

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

one of those terms that gets thrown around a lot and it's sort of so much and it's like fashionable and cool to make things scalable you know because it's it suggests success and millions of users and so that's of course everyone wants things to be scalable because everyone wants success

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

But this book here tried to take a bit more dispassionate kind of approach and said scalability is just like what mechanisms we have for dealing with changes in load.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

If load increases, how can we add computing capacity to a system, for example, so that the system still continues working?

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

And then the techniques that you use to achieve scalability, well, they are like sharding, for example.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

Yeah, I guess because that's the more interesting one.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

Like, yes, you can always buy a bigger machine.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

And what's interesting about that?

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

Exactly.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

There's just, there's not that much to be said about it.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

I mean, there are details of how you scale even on a single machine.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

But I think like part of what is become interesting about like

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

modern cloud services, just backend services in general, is like how they've introduced this idea of horizontal scalability and shared nothing systems.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

So we can build systems that are able to cope with very high load, even if the individual components are just fairly cheap commodity machines.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

But maybe sort of part of the scalability story, which I wasn't thinking about as much at the time, but started thinking about more recently, is not just scaling up, but scaling down as well.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

So actually, how do you run a service in such a way that if it has a very small amount of load, it's really cheap to run it?

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

That's sort of it.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

in a way the same question as how do you continue running a service if it has very high load generally like you just want the the cost and the computing capacity to be roughly proportional to the load that you have and at the low end that means actually being able to scale down to something that is extremely cheap to run and that's like not so necessarily given that's something that is hard with on-premises software for example because like if you've got a machine of

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

a physical machine that's like a a unit of deployment and yes you could carve it up into two dozen virtual machines and make those small virtual machines but um it still requires like some sort of resource allocation and so so part of what's interesting about some serverless systems for example is actually their ability to scale down and say like okay if you're going to handle just three requests per day that's just fine as well can you tell me about the second edition

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

When did the idea come about?