This seems to be the reason for database corruption on several occasions recently. Trials are going on to look at doing synchronous writes. Currently there is code for tcp sockets but with minimal tweaking this will support unix domain protocol communication. Shared memory will require more work. Reliability rpc provides a simplified interface to network communcation, this is fine as long as everything is working, when errors occur it is very difficult to identify the precise cause.
Sockets provide more information about the errors.
There is prototype code working with serveral clients communicating with an ace server. There is still a disussion going on about whether the new version of the client should connect to both rpc and socket based servers. This needs a bit of thought. There are many instances where numbers or strings are hard coded rather than via a common symbol, this applies to buffer sizes, directory names etc. The number is being reduced and where possible enums are being used because they can be seen by the debugger.