You are developing a distributed database that will operate
Solution
Why not RPC?
RPC provides higher abstract level than any other communication. So, it is quite easy and simple to use RPC.But one has to pay the cost in performance because of marshaling/unmarshaling and added complexity in configuration for simple scenarios.
RPC fails in the cases of Non-Local exceptions, Indirect Memory Allocation, Blocking calls, etc.
Messaging
Whereas in messaging, the actual connectivity between the processes is much less. It is the lowest level of abstration.You hand the message off, and you\'re on your way.Now if one of the processes fail, there\'s a good chance of it being restarted where it left off,since, typically, the message is still sitting on a queue somewhere waiting for a new process to fetch it. The overall time may be longer, but it\'s a much more robust system.
On conclusion, Messaging is better approach than RPC.
