News for hackers. Stuff that matters.
Re:Every System is a Log: Avoiding coordination in distribut... by globular-toast on Friday January 24, 2025 @04:06PM (#42816941)
> It’s curious that over those projections, we then build event stores for CQRS/ES systems, ledgers etc, with their own projections mediated by application code.

The database only supports CRUD. So while the CDC stream is the truth, it's very low level. We build higher-level event types (as in event sourcing) for the same reason we build any higher-level abstraction: it gives us a language in which to talk about business rules. Kleppmann makes this point in his book and it was something of an aha moment for me.

Re:Every System is a Log: Avoiding coordination in distribut... by withinboredom on Friday January 24, 2025 @04:25PM (#42817060)
I'm sorry; but have you ever actually used a database before? A database supports FAR more than "only CRUD". Some really simple examples are CTEs, SELECT ... INTO (or INSERT ... SELECT for some dialects), triggers, views, etc.
Re:Every System is a Log: Avoiding coordination in distribut... by nyrikki on Friday January 24, 2025 @06:39PM (#42818012)
CTE's are extensions to try an regain some of what was lost when adopting a model loosely based on Codd's declarative relational algebra, specifically the lack of transitive closure, the rest mostly fit into the CRUD world.

It is a bit circular, CRUD's elements create, read, update, and delete were chosen to represent the core features of a persistence layer.

Re:Every System is a Log: Avoiding coordination in distribut... by slt2021 on Friday January 24, 2025 @06:46PM (#42818054)
what you mention is a high level projection over transaction log and is subject to transaction isolation levels

https://www.postgresql.org/docs/current/transaction-iso.html

Re:Every System is a Log: Avoiding coordination in distribut... by globular-toast on Saturday January 25, 2025 @11:52AM (#42822772)
Have you completely missed the context of this thread? We're talking about the transaction log aka CDC. This consists purely of CRUD operations because that's all the database understands. Maybe read the books cited?