einnocent (19) [Avatar] Offline
You mention the message abstraction layer but another mostly unavoidable shared library I've seen regards inter-service encryption. This falls in part under message abstraction since it is used there, but I think it's worth mentioning separately since there are other aspects too: access to keys, crypto algorithm specification, encryption/decryption APIs, etc.
Richard Rodger (27) [Avatar] Offline
Assuming you encrypt messages smilie

This is not necessary for all systems. Even when you do, it might make more sense to do it at the network or OS layer, and keep that complexity out of the services.

If it does go in the services, it goes in the message abstraction layer as you suggest, and that layer will have to "abstract" the fiddly stuff like key lookups etc.