¿Cuál sería el equivalente de AWS a Firebase Realtime Database?

Estoy trabajando en un nuevo proyecto de juego en este momento que consistirá en un front-end React Native y un back-end basado en Lambda. La aplicación requiere algunas características en tiempo real, como registros de usuarios activos, geofencing, etc.

Estaba mirando la base de datos en tiempo real de Firebase que parece una solución realmente elegante para la sincronización de datos en tiempo real, pero no creo que AWS tenga nada parecido.

Las 3 opciones que se me ocurren para el tiempo real "sin servidor" utilizando solo los servicios de AWS son:

Opción 1: AWS IoT Messaging a través de WebSockets

Este es bastante obvio, una conexión administrada de WebSockets a través del SDK de IoT. Estaba pensando en activar Lambdas en respuesta a eventos entrantes y salientes y simplemente usar WebSockets como la capa en tiempo real, construyendo una lógica de manejo personalizado en el cliente de la aplicación como lo haría normalmente.

La desventaja de esto, al menos en comparación con Firebase, es que tendré que manejar los datos en los eventos yo mismo, lo que agregará otra capa de administración además de WebSockets y tendrá que estar estandarizado con la capa de datos API en las tiendas de la aplicación. .

Pros:

Conexión bidireccional escalable en tiempo real

Contras:

Solo funciona cuando la aplicación está abiertaLa estructura del mensaje debe implementarseMúltiples capas de transporte para gestionar

Opción 2: volver a buscar activada por inserción

Otra opción es usar notificaciones push como desencadenantes en tiempo real, pero use una solicitud HTTP regular a API Gateway para obtener la carga útil actualizada.

Me gusta este enfoque porque se adhiere a una sola capa de transporte y a una única fuente de verdad para el estado de la aplicación. También activará actualizaciones cuando la aplicación no esté abierta, ya que se trata de notificaciones push.

La desventaja es que se trata de una gran cantidad de trabajo personalizado con asignaciones potencialmente difíciles entre las notificaciones push a los datos que deben recuperarse.

Pros:

Las notificaciones push funcionan incluso cuando la aplicación está cerradaFuente única de verdad, capa de transporte

Contras:

La solución más personalizadaImplicará muchas más solicitudes HTTP en general

Opción 3: Cognito Sync Esto es más nuevo para mí y no estoy seguro de si realmente puede interactuar desde el servidor.

Cognito Sync ofrece sincronización de estado de usuario. en todos los dispositivos con soporte fuera de línea y es parte del Cognito SDK que usaré de todos modos. Parece exactamente lo que estoy buscando, pero no pude encontrar ninguna evidencia concluyente sobre si es posible modificar o "activar" las actualizaciones de AWS y no solo de uno de los dispositivos.

Pros:

Proporciona un modelo de datos abstractos en tiempo real.Conectado a los registros de usuario de Cognito OOTB

Contras:

No estoy seguro si se puede modificar o actualizar desde Lambdas


Me pregunto si alguien tiene experiencia haciendo AWS en tiempo real como parte de una arquitectura basada en Lambda y si tiene una opinión sobre cuál es la mejor manera de proceder.

Respuestas a la pregunta(3)

Su respuesta a la pregunta