I would like to design an application that consists of an application server.
There would be a layered core with different responsibilities:
- Receiving messages from the network (e.g. using Netty) using different protocols (e.g. SIP, DNS…)
- Parsing the incoming messages
- Converting the protocol-specific messages into application-specific messages. A particular application may be interested to receive messages of different protocols (e.g. both SIP and DNS).
My question concerns the above layers. Since there will be different applications on top of the core, I would like to find an efficient way to distribute the incoming messages to the relevant applications. By efficient, I mean using a good design (including good patterns), good performance… Which advice can you give me for such a scenario?
Thanks
Maybe the Enterprise Integration Patterns can help you for designing the message flow within your application.
Depending on what you are planning exactly it can also be worth looking into Spring integration or Apache Camel.