We are evaluating the usage of PlayFab for our multiplayer game.
When our Multiplayer match is finished, each game client could call a CloudScript function with their perceived record of the game results, which could be copied into a SharedData data storage that will contain all the results.
We would want there to be some kind of game arbitration run on this data at some point after the last remaining result is uploaded (custom CloudScript), or after some delay since it's possible not all clients may report results.
It wouldn't be safe for every reporting results call to check for all data being complete, because as noted, the SharedData isn't meant to be thread safe or mutually exclusive, and because some clients may not report at all.
I thought it might be possible to use a Scheduled Task to check for matches with "complete" or "complete but timed out" results and process the results ad rewards then, but the Task running seems to only support a precision of specific 5 minute calendar clock intervals, and not something smaller. Is this still the case? I can understand that they would not want the server to constantly run heavy continuous processes but having a 5 minute window seems too long.
Do you see a better system for handling this with PlayFab? I suspect this is probably something that games roll into their Multiplayer Server to handle Arbitration and then report a single result to the server to process.