e.g. announcements, a live poll, audience participation, firmware update, etc.
Many-to-many or multicast
e.g. group chat
Many-to-one or consolidation (fan in)
e.g. IoT, sensor data, telemetry, a live poll, audience participation
Each channel topology has multiple ways of being implemented. For example, for one-to-one chat, each user can:
publish and subscribe to a common channel ‘userA_userB-ch’
subscribe to their own private channels, but publish to the opposite person’s channel
e.g. user A subscribes to ‘userA-ch’ and publishes to ‘userB-ch’, while user B subscribes to ‘userB-ch’ and publishes to ‘userA-ch’
a combination of A & B for ease of history retrieval
e.g. user A subscribes to ‘userA-ch’ and publishes to ‘userB-ch’, while user B subscribes to ‘userB-ch’ and publishes to ‘userA-ch’, and both users also publish to ‘userA_userB-ch’
While architecture may vary depending on the use case and application requirements, we have created some general design patterns outlining best practices. We also have architecture resources – architecture reviews, consultants, solution architects, partners, etc. – available for those interested.