Build robust and highly scalable distributed applications without worrying about complex programming patterns