Flask, как хранить глобальное состояние между процессами?
Суть такова: пишу простенькую браузерную игру, симулятор покера.
На беке фреймворк Flask, но можно изменить на любой другой, не важно.
По текущему плану состояние игры сохраняется между запросами в оперативной памяти. Кроме этого, в памяти так же необходимо постоянно держать довольно объемную таблицу для быстрого расчета старшинства карточной комбинации.
Очень упрощенно, логика следующая:
1) В классе раздачи есть статический массив идущих сейчас раздач.
2) Каждая раздача - объект с уникальным номером, который при создании запускает в отдельном потоке функцию с логикой самой раздачи.
3) В этой функции крутиться бесконечный цикл с выходом по условию (все игроки сделали ход, ставки уравнялись), на каждой итерации которого проверяется, пришло ли с фронта действие юзера, и если да, выполняется дальнейшая логика и передается ход следующему юзеру.
4) Когда на фронте юзер совершает действие, на бек отправляется номер раздачи, по которому в глобальном массиве раздач находится нужная и в нее отправляется ход юзера, который проверяется в п. 3
Все взаимодействие фронт-бек через вебсокеты.
Пока приложение тестируется на локалхосте, где сервер работает в 1 процесс, все работает как надо. Но в реальных условиях, когда сервер будет запущен в несколько процессов, хранить состояние таким образом в глобальных переменных (ну или статических переменных класса, не важно) уже не получится.
Логика самой игры достаточно сложная, чтобы можно было держать состояние раздачи в БД и восстанавливать при каждом запросе, опять же таблицу для расчета комбинаций загружать в память при каждом запросе полный бред.
Подскажите, как обычно решают такие задачи? Если я все делаю совсем-совсем не так, тоже буду рад услышать)