I am looking into the process of having zero downtime.
In the documentation I see that when deploying we can have 2 different database modes ReadOnly and ReadWrite.
I wish to use the ReadOnly mode (recommended), what isn't clear from the documentation is how this effects a commerce site.
I presume customers can still add to cart, update cart, add billing and shipping address, process and order.
Would that assumption be correct?
No, only viewing data (browsing catalog etc.). No adding to cart or update address etc. I believe even logging in will be limited when ReadOnly mode is on (if you updates things like last login date)
For completeness, that is for default implementation. You can in theory store your carts somewhere else (like Azure Table Storage) by using custom implementation and that would allow you to saving carts during ReadOnly mode. However it is quite a bit of works.
Updating customer profile is more complicated as there is no abstraction you can implement
I did a POC for a custom implementation once, maybe you can get some ideas out of it: https://jstemerdink.blog/2016/04/18/poc-upgrade-epicommerce-without-losing-orders/