Не совсем понял как клиент должен взаимодействовать с БД:
- Если через какой-нибудь
CRUD сервис, то почему бы и нет — многие так делают.
- Если имеется в виду прямое подключение к БД, то будут проблемы с безопасностью, разграничением прав доступа, балансировкой нагрузки. БД на такое использоввание не ориентируются.
Если я правильно понял, то тут нужна не БД, а очередь сообщений (которая может работать поверх БД, а может и свои хранилища использовать).
Делаете сервис, к которому подключаетя клиент. Сервис по команде клиентов шлёт сообщения в очередь и пересылает полученные из очереди ответы обратно. Игровая логика сидит с другой стороны, потребвляет сообщения из очереди, делает магию и рассылает результаты обратно.
Реализаций очередей много на любой вкус, в том числе есть что-то и в Redis.
Соединение клиента с сервисом можно не держать, но тогда придётся периодически его опрашивать, что добавит нагрузки. Тут есть дилема: либо заморачиваться с поддержанием множества соединенией, либо с повышенной нагрузкой и задержками. Практика показывает, что взаимодействие клиента с сервером со временем обрастает вспомогательной логикой, поэтому держать постоянное соединение может быть выгоднее в долгосрочной перспективе.