exceptions and returning simple failure packets, and throwing exceptions on the client side when unmarshalling the failure packet.