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

Engineers do not get to make startup mistakes when they build ledgers

https://news.alvaroduran.com/p/engineers-do-not-get-to-make-startup
loading story #42270266
loading story #42277839
loading story #42273759
loading story #42273492
loading story #42270136
loading story #42269882
loading story #42272362
loading story #42273072
loading story #42270673
loading story #42272991
loading story #42270001
loading story #42271895
loading story #42273940
loading story #42275729
loading story #42269894
loading story #42269871
loading story #42274909
loading story #42273327
loading story #42273685
loading story #42270164
loading story #42271708
loading story #42272053
loading story #42272522
loading story #42275025
loading story #42275655
loading story #42276495
loading story #42273378
loading story #42277314
Could someone explain something fundamental to me about the need for double-entry accounting? Why can't your source of truth instead be proper SQL tables following these schemas (using Python tuple/list notation for convenience)?

  transactions: [
    (txID, timestamp, [
      (accountID, delta, otherInfo),
      ...
    ], reason),
    ...
  ]

  accounts: [
    (accountID, routingNumber, accountNumber, ownerID),
    ...
  ]
Crucially, notice that "accounts" don't track balances here, and so I'm asking: why would I need TWO entries per transaction, and why would I need to do my own tracking of the balance of every account, when I can just keep a single entry per transaction in a proper ACID database and then build any view I need on top (such as running balances) with a battle-tested projection mechanism (like a SQL View) so that I still track a single source of truth?
loading story #42271793
loading story #42272800
loading story #42271695
loading story #42270368
loading story #42272157
loading story #42271611
loading story #42272956
loading story #42281435
loading story #42272777
loading story #42281638
loading story #42274811
loading story #42281454
loading story #42281772
loading story #42282482
loading story #42284156
loading story #42272889
loading story #42281672
loading story #42271880
> It’s just that…it goes without saying that fintech companies should know better

haha, if only.

move fast, break everything if it gives profit

loading story #42269820
loading story #42270725
loading story #42272212
loading story #42275376
loading story #42270233
loading story #42276418
loading story #42281048
loading story #42272513
loading story #42282958
loading story #42271423
loading story #42283944
loading story #42270721
loading story #42269985
loading story #42270226
loading story #42274754
loading story #42271268
loading story #42274375
loading story #42271963
> And yet, I used to work for a startup that, on every transaction, simply lost track of a couple of cents. As if they fell from our pockets every time we pulled out our wallets.

is this not the literal plot of Office Space? did you check for a Michael Bolton employee?

loading story #42277766
loading story #42270310
loading story #42311067
loading story #42281836
loading story #42274377
loading story #42286177
loading story #42269965
loading story #42269915