question

Alex avatar image
Alex asked

PlayStream Events and CloudScripts reliability

Hello everyone!

I have a few questions about the reliability of PlayStream Events and CloudScripts

1 - PlayStream Events - what is the delivery guarantee of my events?

If I didn't handle the event right away, can I work with it later?

2 - CloudScripts - we register our Azure Functions in PlayFab to handle our events and http calls from client.

How is the success of a function call tracked?

Will the call attempt be repeated of a network failure? How often?

If it is possible to provide more information about the reliability of PlayStream Events and CloudScripts(with Azure Function)

CloudScriptPlayStream
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
brendan avatar image
brendan answered

1. The built-in PlayStream events (for login, purchases, etc.) are generated in PlayFab's services, so there's practically no change they wouldn't be delivered. We can't rule out the possibility of a catastrophic failure in a datacenter, but barring that, they'd all be delivered. Your own custom events are dependent on the call successfully reaching our service. Assuming it does, the same would apply. I'm not sure what "handle it later" refers to, exactly. You can set a Rule to fire when an event is processed, and events that update the player profile are used for user segmentation immediately. All the events will be stored in your cache for the retention period you have set in the Insights service (default is 30 days).

2. For Azure Functions Cloud Script:

a) If it's triggered by an API call and it's an HTTP function, the success/failure is reported in the results of the call. If it's a Queued function, you can query for the results to see when it's finished and what the results were. If it's run from a Rule, that's still tracked in the API data in the Game Manager, so you can see the failure rates for all calls to the scripts, but not an individual call. You do have the ability to have the scripts generate events, which will contain all the results, as well. We recommend only using that for debugging, however (so, have a parameter that you pass in for that, and only set it to true if the PlayFab ID of the user is in a Title Data file, for example).

b) If the client tries to call to run a Cloud Script and fails, you would control any retry logic - the SDK doesn't automatically do any retries. For Rule-triggered scripts, there's one automatic retry for scripts set up as queued functions. For HTTP functions, we just use the returned status code.

c) I'm not sure, in addition to the above, you're looking for when it comes to reliability. The answer would be "very high". You can review any issues we've had of note in our Status Page (http://status.playfab.com).

1 comment
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Alex avatar image Alex commented ·

Thank you for the answer.

I just want to clarify one detail.

When the PlayFab calls the Azure Function and a network error occurred, will PlayFab try to retry the Azure Function call?

If yes, how many times and can it be configured?

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Error rendering WebPanel (widgets/consolidation-widget.ftl): org.hibernate.hql.internal.ast.QuerySyntaxException: AvailableConsolidation is not mapped [from AvailableConsolidation up where up.node = :node]