#18 Added async code so that if ES is unavailable, calls are not blocking