You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 21, 2022. It is now read-only.
Repository navigation
This repository was archived by the owner on Dec 21, 2022. It is now read-only.
Not sure we need anything beyond what C# provides (but we need .Net 2 & 6)
Inter-process IPC
i.e. between process within a single machine
Lots of data, zero/low-allocation provides significant performance
Available across multiple languages (wider the better)
Lightweight, single-threaded library
Authentication of some kind (might be at application level)
Critical use. e.g. Transformer/Pipeline, Pipeline/xSpace
Cluster Procedure Call aka Local RPC
i.e. between machines within a local network
Shouldn’t have to deal with firewalls
Encryption option necessary
Optimised for low latency over reliable network
Would be beneficial. e.g. Transformer/Pipeline, Pipeline/xSpace
RPC
i.e. between machines, over the Internet
Lots of data but have to negotiate firewalls and unreliable networks
Encryption mandatory
Heavier protocol weight may be required to provide connectivity and deal with problems
Critical use. e.g. Pipeline/SpaceTimeVault
Event Broker (Game Server)
i.e. communication between clients, moderated by server
Broker receives game state and forwards to interested clients
Requires QoS, data packing & optimisation
Must negotiate firewalls and unreliable networks
Encryption capability mandatory
Must not require TCP pseudo-reliable network; drop slow packets and incorporate pertinent information in new packets (if it’s still valid and important)
Message Passing / Communications Queues
Use cases
Use cases separated by distance/medium or route.
Threaded “inproc" Queue
Inter-process IPC
Cluster Procedure Call aka Local RPC
RPC
Event Broker (Game Server)