Proper way to send channel events to multiple different people for live updates?

What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM I want it so that the 2 people who are members of it are instantly notified and have their DM list updated,

I already had some experience with channels and sending messages I created a user channel from where a user can connect with a token (a jwt which holds their subject which is used for authentication) to a topic with their id, for example. user:random_uuid each user has their own channel and joins it on the mount of the application

But for HOW I should actually send the messages I am really confused, I mean to pose this question as a design question and not nessecarily syntax question, since I can figure out the latter by my own. My current idea is as follows: When a user creates a DM, in the dm_controller (Since it would be sort of unreasonable if it was in the channel, improper separation of concerns IMO) it will broadcast/push to 2 topics, user:recipient and user:sender (replace recipient and sender with some ID) with a given event such as create_dm, the user_channel will deal with this and the frontend will see this event and add the DM to it’s state

There’s other another solution where everyone joins a user_channel and messages are only sent out to the intended audience, the sender and recipient, (Not sure yet how that would work, probably handle out). I worry though that this might add extra complication but moreso preformance issues down the line. The former option sounds better anyways but I may be wrong I would really like some advice on how I should handle sending these sort of live updates,

And hell, there’s a chance that both ways I listed aren’t good, but I don’t really know being a newbie

I am using a React Frontend just to clarify. Okay, thanks! :slight_smile:

And sorry I couldn’t find a Phoenix Help section anywhere

Hi Andrew! Did you go over the documentation at Channels — Phoenix v1.8.10? At the very bottom, after introducing the main concepts, there’s a link to an example chat app. That might be a good learning material to connect the pieces together.

Best,

Rodolfo

I’ll check that out, thanks