4 ms·
> 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
by justicezyx 5y ago
> 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.
- dljsjr 5y agoThat’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.
- nattaylor 5y agoYeah, 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.
- temp1634592138 5y agoThe 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.
- othertemp1234 5y agoI 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.
- Woofles 5y agoTo 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.
- temp1634592138 5y agoI'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 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 https://twitter.com/aphyr/status/788755301151477760 and https://twitter.com/aphyr/status/788757992829222912 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.
- temp1634592138 5y agoIt 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.
- saltedonion 5y agoWhat’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?