Use circuit breaker

- [x] @sneal 
- [ ] @creg 

please review