factored out http exceptions; put client link-following logic in the producer
added support for the throwExceptionOnFailure endpoint option