• Things that are big context switches • It needs resources your app doesn’t • It does things that are hard to do in Rails • There are clear inputs and outputs
get you • You will get poorly formed data • You will get out of order data • You will get too much data too fast • You will get the same data repeatedly
Make sure you have timeouts • Define separate exceptions for down, timeout, service-level errors • Test clients at HTTP level • Decide how your app will respond when this service is gone
to move on at some point • Service might be 100% down for a while • If possible, keep accepting writes • Queue them for later processing • Consider local read-only or down setting for service