Sync/real-time communication is not needed for all the processes in a remote team, and you should go async by default and only use sync for cases where you _really_ have to get together. This is how companies Gitlab [1] have really become successful in doing remote work.
A remote team can be successful by using async/non-real-time communication, especially when you're pairing it with an async platform like Standups which is built from the ground up to support the async comm style. I wrote a blog article about how async is determinant to make remote work "work" within your team/org [2].
[1] https://about.gitlab.com/handbook/communication/
[2] https://standups.io/blog/how-async-communication-can-help-yo...