As the system is actor based, sometimes we do not want to panic the thread because this can
break the actor for other messages and transactions. For instance, the router actor is responsible
for routing messages to all of the transaction actors associated with the connection. If we allow
the router actor to panic for one transaction, then all of the other transactions will be lost
for that connection. However, we cannot ignore the error because we must know what is going on.
Therefore we have a macro that logs the error and continues.