we want to design a horizontally scalable solution in kubernetes to subscribe against Queue Notifications.
it's possible?
How does the Notifications service behave when there is a Kubernetes Cluster with N Instances on the other side?
Would it send all events to all PODS? or, Will you balance these Notifications between all PODS?
Has anyone developed and deployed something similar?
A notification requires a websocket. A websocket is a persistent connection between two hosts.
Whatever is hosting that websocket is what is going to get all the notifications.
What you're trying to do sounds like a less effective version of the natively supported Amazon Event Bridge.
My own IT has been playing with feeding notifications into a Kafka bus for multi-casting results to additional subscribers but still has the initial limitation of only being as good as the open socket.
Using EventBridge is the correct solution for service-to-service communications and is the only option that offers retries/guaranteed delivery. WebSocket notifications do not retry or guarantee delivery and are meant for individual end-user applications.
What are you expose, is quite possible but as the other has expressed, it alone have some caveats. However, if your Kubernetes are located in AWS, you just need add to your architecture AWS eventbridge and lambda: Genesys Cloud will send the notifications through eventbridge, then is up to your dev team how to inject the notification in you storate in kubernetes.
Also, I have seen solutions where eventbridge send the notification to another cloud like microsoft or google or on-premise, or just inject directly on Amazon cloud database or whatever you like. On genesys cloud developer site there some ideas about it, blueprint section:
like for example, this blue print inject on aws S3:
Thank you very much for all the answers.
We have been looking at how to deploy the infrastructure and it seems that the integration is clear.
The problem is that I need to get the events of the topic v2.routing.queues.{id}.conversations.calls, which shows the participants of the conversation, and I can't find a topic of the EventBridge type that gives me the events of the participants.
I need to know when a Phone (Communicate Stand Alone, e.g. Poly VVX250) pick up or its status. If I perform Transfer To ACD (Dummy Queue without agents) and I perform Transfer To Numbers in an In-Queue Call Flow, using the topic v2.routing.queues.{id}.conversations.calls I can know the status of the phone and know when pick up.
I don't see a Topic that gives me the states of the phones. Because v2.telephony.providers.edges.phones.{id} only shows registration or deregistration. It does not show ringing, pickup, alerting, etc.
Is there any Topic with show this states?
Is there an EventBridge topic that shows me the participants of the conversations?