Hi Tim
I will give you the info you asked for, but we will have need of more throughput. We already have 5 different services that talk to GPC, and each has their own key. However some of them are starting to hit the point where 1 key is not enough.
The service we are talking about is processing changes in conversations so as to update the data about phone calls, email and sms (have they started, whos involved, did they end, was there call backs, whats the wrap up code). We need uptodate information with as low lag as possible so our agents can see the results of the calls and the client files can be kept uptodate.
We were scanning once a minute. And during that scan using the analytics api to scan all convos changed in previous minute. Then, because the analytics api does NOT return the full convo object, we have to make an api call per convo, and then emit an event into our own system indicating the conversation has changed.
The per convo lookup is where we are really using the RPM.
We have discovered that there is actually some lag in analytics api returning accurate results. EG if you call it for the time of now() to now() - 1 minute, you will actually miss conversation changes that haven't been updated due to async nature of your back end system.
We tried adding lag to our system where we would call the period of now() - 1 minute to now() - 2 minutes. But that introduced painful delay for our agents, and still missed convos.
So we made the system more robust. We would call every minute and scan from now() to now() - 5 minutes. And we would check the returned convos to see if they had actually changed since we last emited an event. That way we would get the best of all worlds. Fast response, and better protection from missing convos due to async nature of processing.
Also when there is an analytics outage, which happens often enough that we have commands to do this, we can run a scan after the incident and be assured of getting the data back into the system with no duplicate events emitted on our side.
Once we got that working, the agents still weren't happy with the lag, so we increased the scan rate to once every 30 seconds.
Now things have been working pretty well. But needing to plan for future capacity.
Thanks
Chris