Både Cassandra och PostgreSQL stöder linjärisering och compare-and-set (CAS), så att du kan implementera transaktioner på klientsidan.
Om du vill ha Serialiserbar isoleringsnivå bör du ta en titt på Perkolatorns transaktioner . Percolators transaktioner är ganska kända i branschen och har använts i Amazonas DynamoDB transaktionsbibliotek , i CockroachDB-databasen och i själva Googles Pecolator-system. En steg-för-steg-visualisering av perkolatorns transaktioner kan hjälpa dig att förstå det.
Om du förväntar dig tvist och kan hantera Read Committed-isoleringsnivån så RAMP-transaktioner av Peter Bailis kan passa dig. Jag skapade också en steg-för-steg RAMP-visualisering .
Det tredje tillvägagångssättet är att använda kompenserande transaktioner som även kallas sagamönstret. Det beskrevs i slutet av 80-talet i sagorna papper men blev mer aktuellt med ökningen av distribuerade system. Se Tillämpa Saga-mönstret prata för inspiration.