News for hackers. Stuff that matters.
Re:Consistency Without Clocks: FaunaDB's Distributed Transac... by ryanworl on Friday October 19, 2018 @11:12AM (#18257224)
Has the lack of interactive transactions and only supporting entirely deterministic transactions been a big issue for your customers?

My understanding is you're essentially shipping a "stored procedure" to the database where every input and condition is known up-front.

It seems like a reasonable trade-off for lowering the latency of WAN transactions, but it might make application development more complicated.

Re:Consistency Without Clocks: FaunaDB's Distributed Transac... by evanweaver on Friday October 19, 2018 @11:24AM (#18257333)
No, it hasn't. It is possible to layer an optimistic concurrency model for session transactions on top of our protocol, but the database standard library is sufficiently full-feature that it's easy to express most application logic as a pure function over the current state of the database.

Most read/modify/write cycles end up being essentially that, but with the added confusion of local application threading and standard library. We eliminate that, but preserve the general ability to express a complex query in application code (which also increases application concurrency since the database executes transactions with maximum parallelism.)

Transactions do not have to be pre-registered as stored procedures.

Re:Consistency Without Clocks: FaunaDB's Distributed Transac... by jchrisa on Friday October 19, 2018 @12:33PM (#18257884)
This FaunaDB ledger tutorial gives a feel for how you'd build out your application logic: https://fauna.com/blog/tutorial-how-to-create-and-query-a-le...

If you want to see a query with precondition checks etc, the code at the end of this post is another example: https://fauna.com/blog/distributed-ledger-without-the-blockc...