Hacker News new | past | comments | ask | show | jobs | submit login

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, which we believe is the fastest, most reliable and most widely distributed database in the world. This fork optimizes SQLite to operate on extremely high core density servers, concurrently executing thousands of page-locked transactions per server, with robust conflict detection and resolution. Bedrock further extends SQLite -- which is a local database with no networking component -- with a WAN-optimized, Paxos-based self-healing clustered replication engine designed to conduct atomic two-phase commits over high-latency / low-reliability internet VPN links, using the world's longest continuously operational Blockchain (since before Bitcoin began). Our design is optimized for global scale, speed and reliability.




Wow, that covers basically every buzz word and sounds terrible.

Expensify also is the type of app that would scale really well with a traditional rdbms, so im not sure what the point is.


> 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?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: