| ▲ | Object storage is all you need(tigrisdata.com) | |||||||||||||||||||||||||||||||||||||||||||
| 21 points by jpsaccount 2 days ago | 15 comments | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | dullcrisp 4 minutes ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||
This article doesn’t present much motivation for why you would do this. To me it reads a bit like, how we built our office without desks: it turns out if you stack two chairs on top of each other, you can balance your laptop on the top and you’ll also have a shelf on the bottom for your things. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | tantalor 5 minutes ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||
> Protobuf field names are forever If you only have binary encoded protos to worry about (which is typical) then you can rename fields. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | arpinum 25 minutes ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||
This is frustrating to read. Tigres is built on FoundationDB, but doesn't expose all FoundationDB operations like transactions, range reads, and get mapped range. They go through all sorts of complications to handle these issues, including a database for caching (and they don't consider thundering herd problems). What if you just ran FoundationDB instead? | ||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | ryanbrunner 12 minutes ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||
Articles like this remind me of that Innovation Tokens article. Your time and attention is precious as a developer. I'm absolutely sure it's possible to implement uniqueness constraints, transactions, indices, and history yourself, but is that really the most valuable use of your time? There's probably not a need for you to have a unique solution, so you're quite literally just re-inventing something someone already had for not a lot of benefit. Wouldn't your time be better spent actually solving the problems that whatever you're building is supposed to solve? | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | i2km 15 minutes ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||
Along with putting estimated reading times (21 minutes in this case) can authors please start putting estimated writing times? Did it take 10 seconds of prompting? Or hours of thought, trial error and revision? Especially when asking people to read for 20+ minutes... | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | jeremyjh an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||
Absolutely no mention of Iceberg or Delta Lake, which have had many of the same properties for years. I wonder if they are aware of them, or otherwise why they invented something new. I generally don't read low-quality AI slop though, so its possible I missed an explanation that didn't contain those key words. | ||||||||||||||||||||||||||||||||||||||||||||
| ▲ | jpsaccount 2 days ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||
Author here. Ampbase is an OpAMP control plane for agent fleets, and this is how it runs without a database: conditional writes for uniqueness and compare-and-swap, one bucket per customer so isolation isn't a WHERE clause somebody has to remember, ULID keys so history is a prefix list. Two things the post doesn't cover and I'm happy to get into. What closing the cross-region lost update actually took: annotating the RPCs that depend on a compare-and-swap and replaying those to a single region, with a client-side guard. And the read amplification, which we have a plan for but waiting on a clear signal for when it’s needed. Cross-posted with thanks to the Tigris folks; the original is at ampbase.io. | ||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||