Skip to content

Comment on Expensify S-1parent

Comments

I still marvel that they've built such a big company around a SQLite fork.
Expensify is built on Bedrock - a private Blockchain-based data foundation atop a custom fork of SQLite

This seems just that they use Bedrock, which itself is a blockchain data foundation (whatever that means I have not much idea), then that thing uses SQLite fork.

For me this is more like someone uses ABSL or MYSQL. Not build around it, but just a small piece of tech.

It has been a while since I left the company, but back then the blockchain is essentially a checksum on previous executed commands. Bedrock uses (used?) command logging as way to propagate changes. That is, they store the SQL in a table and apply the same command on all nodes, with a single master being responsible to be the canonical version.

That’s not totally fair, though, because Expensify created Bedrock. So it seems that a good bit of their engineering effort has gone in to this technology.

The CEO created Bedrock. The engineers have to maintain it because it is the CEO's pet project, and the CEO always knows best. Nobody there really loved it.

I can second this. It's a cool bit of technology. They labeled it "blockchain" way after the fact because it kinda-sorta resembles a blockchain, but it was never really that. It was a distributed replication layer on top of SQL. I remember it constantly breaking. Your description fits well: CEO's pet project that no one else really loved. I have to imagine they've got it pretty stable by now, though.

To be fair, it was basically an MVP. It did everything it needed to and nothing more the entire time I worked on it. Definitely didn’t love it, but it did expose me to cool problems to work on.

I'm not sure the CEO would label it as MVP. I remember pretty well that it was portrayed as cutting edge and robust technology (hence the name Bedrock). But I do agree with you that it exposes you to some interesting areas.

You can see this thread when the project got open sourced: https://news.ycombinator.com/item?id=12739771 . The CEO's handle is quinthar.

Amusingly, see this Twitter thread from aphyr, a respected known name in the DB field: https://twitter.com/aphyr/status/788755301151477760 and https://twitter.com/aphyr/status/788757992829222912, where he is surprised that the author don't know about basic concepts of distributed systems, such as CAP and IOPS.

Yeah, from Bedrockdb.com:

Bedrock was built by Expensify, and is a networking and distributed transaction layer built atop SQLite, the fastest, most reliable, and most widely distributed database in the world.

What’s the point of building this in-house over using an existing solution? Is there some particular use case that a replicated SQLite is good at?

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.