It sounds exactly like every microkernel architecture to me. Subsystems are processes, processes communicate by sending asynchronous messages, there is a way to wait for a reply to a message to allow synchronous interaction, there is a way to share or transfer ownership of memory between processes to allow bulk data transfer.
Message sending might be implemented on top of memory mapping, but doesn't need to be.