Thank you for the explanation. I will probably use a third-party database (firebase) for payments.
Using firebase, different operations can be done on the client side, without disturbing the main server. I think this is very useful for a smoother user experience.
@baris yeah it's true, but you can use transaction on a multicluster with only one node, also if with a lot of limitations.
About your command example is a good idea also if it would work only with redis and postgre, with mongodb can be used like a normal batch.
I took a look to postgreSQL module, seems it support transactions, mongodb emulate the same thing with non ACID batch. I prefer to avoid SQL databases but the way data is organized seem more suitable to a relational DB