3 ms·
If you can model your mutation as a database transaction, then that's probably the best. In the past, we've wanted these kinds of solutions when performing acti
by singron 2y ago
If you can model your mutation as a database transaction, then that's probably the best. In the past, we've wanted these kinds of solutions when performing actions that weren't in a transactional database. E.g. third party APIs, multiple databases, non-transactional databases, work assignments, rolling restarts and other risky control plane changes. Also a lot of databases can degrade performance when transactions are held open (e.g. in postgres, an open transaction will prevent the cleanup of dead tuples across all tables, which can cause pathological slowdowns in certain workloads), so you might want to move long-held locks out of your database.
- shermantanktop 2y agoOh absolutely. I have a horror story about Hibernate and annotations taking a lock while listing objects in S3. Someone added a million objects to the bucket and…bad things ensued.