Glauber Costa
๐ค SpeakerAppearances Over Time
Podcast Appearances
So it... We revisit it. Now it's no longer a 10-minute dream that went away. We truly believe now that once we get the momentum going, we can replace SQLite. And that's the goal.
So it... We revisit it. Now it's no longer a 10-minute dream that went away. We truly believe now that once we get the momentum going, we can replace SQLite. And that's the goal.
Your intuition is correct, by the way, which is one of the things that all things considered, we went with the fork. Because at least there is some level of guardrails that come with the fact that at least you know that this code that you're importing was tested by this proprietary tester.
Your intuition is correct, by the way, which is one of the things that all things considered, we went with the fork. Because at least there is some level of guardrails that come with the fact that at least you know that this code that you're importing was tested by this proprietary tester.
I don't think your intuition is incorrect, but something amazing happened. And by the way, the way I look into the situation, another thing that I want to make it clear, I don't actually think that we made a mistake with the fork because if we were rewriting back then, there were many decisions that we made today that we would not have made But now we did because we had the experience.
I don't think your intuition is incorrect, but something amazing happened. And by the way, the way I look into the situation, another thing that I want to make it clear, I don't actually think that we made a mistake with the fork because if we were rewriting back then, there were many decisions that we made today that we would not have made But now we did because we had the experience.
We've been running the Thurso platform and we learn a lot of things. So it actually allows... I almost see it as a prototype and it actually allows us to make tremendously good decisions with the Limbo project. And one of them is exactly the testing. What happened is that... Becca and I got hooked into something called deterministic simulation testing.
We've been running the Thurso platform and we learn a lot of things. So it actually allows... I almost see it as a prototype and it actually allows us to make tremendously good decisions with the Limbo project. And one of them is exactly the testing. What happened is that... Becca and I got hooked into something called deterministic simulation testing.
And deterministic simulation testing is a very niche thing that most people have never heard about. I had heard about it a couple of times, but I didn't truly quite understand what it was until I met Yoran. So Yoran is the founder of of, and I can say this, I mean, even though I am the founder of a database company, Yoran is the founder of the most amazing database company I've ever seen.
And deterministic simulation testing is a very niche thing that most people have never heard about. I had heard about it a couple of times, but I didn't truly quite understand what it was until I met Yoran. So Yoran is the founder of of, and I can say this, I mean, even though I am the founder of a database company, Yoran is the founder of the most amazing database company I've ever seen.
Although now I think with Limbo, we have a chance to reclaim that title. Yoran and I are going to fight about it. But, you know, ask me a month ago, I would say, man, I have to give it to him. This is the most impressive database company of all, Tiger Beetle. Tiger Beetle is a database, just to keep it very brief, that is designed for financial transactions. So it's completely written in Zig.
Although now I think with Limbo, we have a chance to reclaim that title. Yoran and I are going to fight about it. But, you know, ask me a month ago, I would say, man, I have to give it to him. This is the most impressive database company of all, Tiger Beetle. Tiger Beetle is a database, just to keep it very brief, that is designed for financial transactions. So it's completely written in Zig.
And their goal is to replace entire systems, the bespoke systems that most financial institutions have to process transactions. So if you're selling to banks and financial institutions, if your goal is to replace the backbone of world's commerce, It's pretty hard to do, right? And one of the challenges that you have is just this, like, how do we trust this thing?
And their goal is to replace entire systems, the bespoke systems that most financial institutions have to process transactions. So if you're selling to banks and financial institutions, if your goal is to replace the backbone of world's commerce, It's pretty hard to do, right? And one of the challenges that you have is just this, like, how do we trust this thing?
And you're unfound the solution for that. The solution that you're unfound was to write Tiger Beetle entirely with a technique called deterministic simulation testing. Deterministic simulation testing is essentially a fuzzer. So it will generate a bunch of inputs. It randomly generates as many inputs as it can on the space of possible inputs. And this is the disadvantage.
And you're unfound the solution for that. The solution that you're unfound was to write Tiger Beetle entirely with a technique called deterministic simulation testing. Deterministic simulation testing is essentially a fuzzer. So it will generate a bunch of inputs. It randomly generates as many inputs as it can on the space of possible inputs. And this is the disadvantage.
You kind of have to write software in a special way to lend itself to deterministic simulation testing. It's very hard to boat it to an existing code base, right? But you write it in a way that every single operation that you do on IO, on thread scheduling, everything that happens goes through a special interface that abstracts all IO, and then you plug a simulator.
You kind of have to write software in a special way to lend itself to deterministic simulation testing. It's very hard to boat it to an existing code base, right? But you write it in a way that every single operation that you do on IO, on thread scheduling, everything that happens goes through a special interface that abstracts all IO, and then you plug a simulator.
When you're testing this, you plug this into a simulator, and the simulator is included in the code base. So what the simulator does is that it's going to explore the space of possibilities, create the most arcane, impossible situations ever, And then when something breaks, it gives you the exact steps deterministically that everything in the system had up until that point.
When you're testing this, you plug this into a simulator, and the simulator is included in the code base. So what the simulator does is that it's going to explore the space of possibilities, create the most arcane, impossible situations ever, And then when something breaks, it gives you the exact steps deterministically that everything in the system had up until that point.