AWS: хранение и анализ архитектуры игровых данных (эластичная, или афина, или кинезис)

моя компания создает игру, похожую на Archero, а я всего лишь бэкэнд-разработчик.

Я реализовал систему, управляемую событиями, в которой я могу повторно использовать код между Unity и сервером (оба - .net). Я также хочу анализировать данные, которые мы получили в результате этих событий.

Я использую общие библиотеки классов с именем GameEngine. Эти библиотеки отвечают за ChangeSets.

Когда игрок обновляет предмет или завершает главу, игровой движок применяет ChangeSet к пользователю. (UserChangeSet, EventChangeSet,StoreChangeSet и т. Д.)

Когда пользователь входит в систему, я отправляю наборы изменений на сервер, и сервер также обрабатывает наборы изменений один за другим, используя один и тот же код, что приводит к тому же пользователю.

Моя текущая многорегиональная архитектура включает: Route53 + AGW + LAMBDA + DYNAMODB + конвейеры в нескольких регионах с использованием terraform. Все сделано.

Теперь я хочу проанализировать данные, полученные из этих наборов изменений.

Я думал, что будет нормально, если я использую rds, но вставка в 3 разные таблицы в лямбдах добавляет задержку в 500 мс даже без индексов и пустого db.

После небольшого поиска это мои новые идеи;

Отправьте данные в AWS Kinesis из лямбда-выражений, затем отправьте в S3, затем проанализируйте с помощью AWS AthenaSQS, затем S3, затем ATHENA ИЛИ Lambda, затем эластичный поиск

Я хочу запросить, например, количество пользователей, которые обновили ЭЛЕМЕНТ X в 10 наборах изменений.

      public class InventoryChangeSet:ChangeSet
{ 


    public IEnumerable<Tuple<string, int>> ScrollWithCount;

    public string ItemId ;

    public string UserId;

    public ItemChangeType ItemChangeType ;

    public InventoryChangeSet()
    {
    }

   
}

0 ответов

Другие вопросы по тегам