GLA Summit 2020/Distributed Message Broker Design: Difference between revisions
Appearance
Added page |
m Update with infobox and presentation template |
||
Line 1: | Line 1: | ||
{{infobox | |||
|category=presentation | |||
|icon=GLASummitButton.png | |||
|presentation-conference=GLA Summit 2020 | |||
|presentation-presenter=Dmitry Sagatelyan | |||
}} | |||
{{presentation | |||
|presenters=Dmitry Sagatelyan | |||
|abstract=Message Broker is a very powerful Design Pattern – it enables scalability of actor-based applications by providing multiple flavors of actor decoupling: | |||
* Spatial – Actors do not need to know each other’s ‘location’ (references/URLs) | * Spatial – Actors do not need to know each other’s ‘location’ (references/URLs) | ||
Line 18: | Line 25: | ||
* It supports auto-healing and auto-recovery of actor-actor communications in case of a remote application component (EXE) going off-line and coming back on-line | * It supports auto-healing and auto-recovery of actor-actor communications in case of a remote application component (EXE) going off-line and coming back on-line | ||
* It uses Network Streams for implementing message forwarding across EXE boundaries | * It uses Network Streams for implementing message forwarding across EXE boundaries | ||
|youtube-id=MuPN4vqmO5c | |||
}} | |||
==External links== | |||
*[https://www.glasummit.org/presentation-list/2020 GLA Summit 2020 Presentations] | |||
* [https:// | |||
[[Category:GLA Summit 2020]] | [[Category:GLA Summit 2020]] |
Latest revision as of 09:20, 21 August 2024
Distributed Message Broker Design | |
---|---|
Conference | GLA Summit 2020 |
Presenters | Dmitry Sagatelyan |
Distributed Message Broker Design by Dmitry Sagatelyan
Message Broker is a very powerful Design Pattern – it enables scalability of actor-based applications by providing multiple flavors of actor decoupling:
- Spatial – Actors do not need to know each other’s ‘location’ (references/URLs)
- Temporal – Actors may be created/started in any order
- Synchronization – Actors do not loose messages (message buffering)
- Semantic – Actors can exchange messages across abstraction/aspect boundaries without being statically coupled to other actor’s message classes (Message Translation)
I’ve been using a ‘local’ Message Broker implementation to support actor-actor interactions within the same executable for the last 5 years. What I did not appreciate is that Message Brokers also allow eliminating a need for Actor Proxy objects required to communicate across EXE boundaries in ‘traditional’ actor topologies (ex: static actor hierarchies).
This presentation describes the design of a simple Distributed Message Broker extension with major features including:
- Distributed Message Broker class is a child of the ‘local’ Message Broker class (OCP)
- It is 100% backward compatible to ‘local’ Message Broker implementation (uses the same API)
- It allows moving Actor classes between executables without any changes to Actor code
- It eliminates the need for Actor Proxy objects by encapsulating proxy functionality (a single pair of proxies for EXE – EXE bidirectional message forwarding)
- It supports auto-healing and auto-recovery of actor-actor communications in case of a remote application component (EXE) going off-line and coming back on-line
- It uses Network Streams for implementing message forwarding across EXE boundaries