RabbitMQ Java client provides an opinionated way of detecting errors but not recovering from them. amqp gem experience shows what can be done (I can't say it is an idea approach, but we did well given all the backwards compatibility constraints). Langohr needs something similar that fits functional/Clojuric way of doing things.
Some incremental improvements in #16 address this issue.
Some initial work has been done in 86d2ba1 and 479481e
Finally complete enough in 1.7.0, topology recovery is supported in master.