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

But it also leads to this situation where the people have a gun against their head all of the time.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

That isn't really a healthy situation to be in, in my opinion.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

But changing that in such a way to take away that gun from customers' heads...

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

is difficult if you're in a business whose revenue depends on perpetuating that kind of lock-in situation and there i feel like in academia i have the freedom to work on things that go against this commercial incentive of companies and say like actually no i'm going to do what i think is right for the users and i'm going to say the commercial model of the companies making the software is second priority and i can afford to do that because i'm i'm not dependent on this commercial model

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

To add to this, it's very interesting and challenging engineering problems, right?

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

Yes, and it's wonderful to get to work on interesting engineering and computer science problems while at the same time trying to pursue this higher level vision.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

Yeah, so with our vision of local first software, we are trying to get away from this dependency on centralized cloud services.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

There may still be cloud services involved in syncing data between your phone and your laptop, say, because often going via cloud service is just the most convenient way of establishing that kind of communication.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

But we just don't want to have to trust on a cloud service providing a particular function.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

And if you can get away from assuming this one cloud service, you could, for example, have multiple cloud services on multiple cloud providers side by side, and you just sync by whichever happens to respond first or second.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

sync with all of them and then if one of them disappears no problem because you've got the other one and so it gives us a huge amount of freedom and flexibility if we get away from this assumption of centralized cloud services but that introduces a whole bunch of interesting research and engineering challenges because so one thing that we've been working on lately say is access control you know simple problem you have a document you want to be able to grant collaborators access and you want to be able to revoke that access again

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

totally obvious, should be totally straightforward.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

In a centralized cloud service model, it is totally straightforward.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

Yeah, but if you want to run your system over multiple providers, or even in a peer-to-peer setting,

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

then, well, what could happen is that a user gets their edit permissions revoked, and concurrently, that user makes an edit to the document whose permissions have just changed.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

And now some devices may see the edit to the document first and the revocation second, and so they would accept the edit to the document.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

And another device may see it the other way around.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

They may see the revocation first and then the edit to the document second, and they'll drop the edit to the document because they think it's not authorized.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

And now those devices have become inconsistent with each other, permanently inconsistent.

The Pragmatic Engineer
Designing Data-intensive Applications with Martin Kleppmann

So that means if we actually want to ensure consistency, even for this fairly basic setup, we now have to somehow figure out how to resolve the situation of an edit that is concurrent with the revocation of the user who made that edit.