Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have tried to use tiger beetle in production. haven't been successful yet.

nice stuff, multi master replication.

user API, super small.

doubts about how to do streaming backup.

after studying the API and doing some spike architectures I come to the conclusion (I may be wrong):

tiger beetle is awesome to keep the account balance. that's it.

because you pretty much get the transactions affecting and account and IIRC there was not a lot you can do about how to query them or use them.

also I was thinking it would be nice to have something like an account grouping other accounts to answer something like: how much money out user accounts have in this microsecond?

I think that was more or less about itm they have some special fields u128 to store ids to the transaction they represent into your actual system

and IIRC handle multi currency in different books

my conclusion was: I think I don't get it yet. I think I'm missing something. had to write a ruby client for it and build an UI to play with the API and do some transactions and see how it behaved. yet that was my conclusion

would be great to have an official UI client



> how much money out user accounts have in this microsecond

My understanding is that if you want aggregations or sub accounts then you need to duplicate transactions and maintain them yourself. This may seem like it would be annoying, but I suspect it would mostly be a matter of code organization.

I expect typical TigerBeetle (TB) clients will develop and maintain an application-level library that builds up a set of TB transactions that encode each business-level transaction. For example, if a "business transaction" is "marking a purchase order as received", the corresponding set of TB transactions might include: 1. moving the received qty from the pending receipt qty account to the inventory qty account for the received line items, 2. adding the total cost to the inventory value account for this item, 3. adding the price to the Accounts Payable (AP) account for this vendor, 4. adding the shipping price to the AP account for the delivery company, etc. But then you might want some aggregations, so you'd do the same thing again and add the price to the "total inventory value" and "total accounts payable" accounts, etc.

In fact you might want 3, 4 or even more parallel ledgers at different levels of aggregation, which could all be maintained within the application library. I wonder if there's a name for this technique. My only concern is that if you break down your business transaction into fine grained detail like this and then duplicate it with multiple aggregations then that 8000 transaction limit starts looking a lot smaller.


yeah, it becomes prone to mistakes and totals not matching between accounts, but with the atomicity of TB and some good testing this seems viable


On the streaming side, are you looking for Change Data Capture?

https://docs.tigerbeetle.com/operating/cdc/


sorry, i meant something like an external continuous backup. just in case the system get compromised, a constant off-site non operational backup


Have you tried Convex?




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

Search: