1. 4
  1.  

  2. [Comment removed by author]

    1. 2

      Do you mean as presented in the article? With services? Well, I don’t exactly know what you need to do. Entire books have been written on the subject. It’s a really hard problem.

      You can look at how something like CockroachDB handles a similar problem.

      1. 1

        I recall some platforms having a concept of a distributed transaction coordinator, which implies another piece of software to run, along with all your services implementing a protocol for rollback in case of failure.

        At this point, you might as well just accept you are full-on Enterprisey. :)

      2. 1

        You use an actual transaction - either distributed, or by having a single point of coordination. E.g. store both the user and the profile in a database using three-phase commit with an appropriate transaction isolation level. Or some fancy paxos/raft-based distributed transaction protocol.

        Much better to structure your data such that the same record represents both the user and the profile, IMO.

      3. 1

        The lack of transactions in BigTable is why Spanner was created; Spanner provides distributed transactions as good as any RDBMS while still being easy to split data across multiple datacenters.

        1. 1

          To be honest, I don’t think consistency is undervalued. I think most shops simply don’t think about it.