When a game network attaches external integrations, such as remote wallets, asynchronous communications becomes important. This can be any kind of integration, but in this blog post we'll assume it's a wallet we're talking with. So, what's our problem?
- If the network has several operators no operator must block players from another operator. If the wallet operation is synchronous, one call to an integration may lock the entire table. It is more acceptable if there is only one operator, but when there's several, we must make sure no-one is penalized by another players operator.
- Similarly, we may have other integrations that takes time even for a single operator and don't want to block game play during it's operation. This might include interactions with national gambling authorities, etc.
- Send buy-in information to player
- On buy-in request from player, set player state to "buy-in in progress"
- Hand-off buy-in operation from the game to a wallet service
- When buy in is complete, wallet service notifies game
- Game sets player as "in game" and notifies the same