+
+
+## About this Extension
+
+To provide a simpler way to exchange messages between EDCs while re-using the Dataspace's Connector-to-Connector authentication mechanisms, we created our own extension with a much simpler API surface omitting JSON-LD.
+
+## Why does this extension exist?
+
+Adding custom DSP messages to a vanilla EDC is verbose and requires the handling of JSON-LD and implementing your own Transformers. Since we do not care about JSON-LD we wanted a simpler API surface.
+
+## Architecture
+
+The sovity Messenger is implemented on top of the DSP messaging protocol and re-uses its exchange and authentication.
+
+It is abstracted from the internals of the DSP protocol such that changing the underlying implementation remains an option.
+
+
+```mermaid
+---
+title: Registering a handler
+---
+sequenceDiagram
+ Caller ->> SovityMessengerRegistry: register(inputClass, intputType, handler)
+```
+
+```mermaid
+---
+title: Sending a message
+---
+sequenceDiagram
+ Caller ->>+SovityMessenger: send(resultClass, counterPartyAddress, payload)
+ SovityMessenger -->> RemoteMessageDispatcherRegistry: dispatch(genericMessage)
+ SovityMessenger -->> -Caller: Future