A thin RPC client/server based on Bunny (RabbitMQ) and toolkit for quickly building micro services. At the moment this prototype implementation focuses on solving for synchronous execution.
- Set up a new services with as little conceptual overhead as possible
- Fault tolerant synchronous execution: - Client should gracefully handle unavailable services - Client should gracefully handle service timeouts - Server should gracefully handle undeliverable responses (and should allow for work to be rolled back in that event)
- Baked in instrumentation [todo]
- Baked in service discovery
- Allow for rapid service development
- Automatic serialization / deserialization of objects passed in and returned. (Simply expose JSON via OpenStruct)
- Consistent exception passing
- Extend for backgrounding work across services
- Consider extending to support an event-based model