Jump to content

GLA Summit 2020/Distributed Message Broker Design: Difference between revisions

From LabVIEW Wiki
Added page
 
m Update with infobox and presentation template
 
Line 1: Line 1:
'''Distributed Message Broker Design''' by Dmitry Sagatelyan
{{infobox
|category=presentation
|icon=GLASummitButton.png
|presentation-conference=GLA Summit 2020
|presentation-presenter=Dmitry Sagatelyan
}}


''Message Broker is a very powerful Design Pattern'' – it enables scalability of actor-based applications by providing multiple flavors of actor decoupling:
{{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==
<div style="text-align:center;"><youtube width="800" height="600">MuPN4vqmO5c</youtube></div>
*[https://www.glasummit.org/presentation-list/2020 GLA Summit 2020 Presentations]
 
==Presentation Links==
* [https://youtu.be/MuPN4vqmO5c YouTube Video Link]
 
==See Also==
{{ambox|text=Add links to internal wiki pages that would also help.}}
 
==External Links==
{{ambox|text=Add links to external resources that would also help.}}


[[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


External links