Comment by prisenco

2 days ago

Historically, yes. Databases were software that were concerned with both storage and networking.

It's fine to want to separate those out, but it's not easy to do so and there are reasons they've been coupled for decades.

What makes it hard?

Having a single DB that takes write queries via a proxy which spreads them out to multiple read-only-DBs sounds easy at first.

  • When do you consider the write/transaction to be completed?

    What do you do about out-of-sync read replicas?

    ACID gets real hard real fast when introducing replication.

    • > When do you consider the write/transaction to be completed?

      Sending a UPDATE/INSERT/DELETE statement to SQLite is not blocking? I would think it is, because in my code I can read the number of affected rows right after I sent the query.

      > What do you do about out-of-sync read replicas?

      Delete them and replace them by uploading a checkpoint and replaying a log of the queries since then.

      1 reply →