Comment by TZubiri

1 day ago

>Applications also commonly store their internal state in Barbara - writing dataclasses straight in and out with only very simple locking and transactions (if any).

Right out of the gates, it's crazy how this contrasts with Mercury's Haskell infra

https://blog.haskell.org/a-couple-million-lines-of-haskell/

It sounds pretty similar actually. Barbara fills the same role that Temporal is doing at Mercury.

  • I may be reading between lines, but temporal seems to be a virtual machine like the evm, it handles computation.

    Barbara is a company wide database, it handles data storage.

    When I read about internal app state being stored in Barbara I'm interpreting that the policy is for the data to be centralized for more vertical control.

    While the Temporal thing sounds like if something is written, it's done so in a containerized like manner, and other processes can't just read it.

    • > temporal seems to be a virtual machine like the evm, it handles computation.

      It stores the app's work-in-progress state as well (probably as a blob full of serialised internal datastructures, at least in some cases):

      > You write your workflow as ordinary sequential code, and the platform records every step in an event history. If a worker crashes mid-workflow, another worker replays the deterministic prefix to reconstruct the state, then continues from where it left off.

      > When I read about internal app state being stored in Barbara I'm interpreting that the policy is for the data to be centralized for more vertical control.

      That wasn't the way I experienced it, if anything it was the opposite: app developers would push to use Barbara for their internal state because it was easy: the app is already accessing it, the APIs are simple, and since it's just pickled objects you can just store your state without having to worry about serialisation (much) or ORM. Whereas policy and leadership would if anything prefer you to use a separate traditional database. The point of Barbara is to provide a unified interface onto "everything the bank knows", it's primarily for data that multiple teams use, not internal state owned by a single team.

Eh, to be fair, this post is about a _bank_, and the one you've linked is about _fintech_. They are not even close to the same space, even though they both deal with money.

But also I suppose you may be saying exactly this?

  • "Bank" in English is an extremely overloaded term.

    There's a very big difference between the kind of bank you walk into to get a checking account, versus one that has no (individual) customers and whose job it is to assist with IPOs or whatever.