Aplicación híbrida
Una aplicación híbrida atiende peticiones HTTP y, a la vez, escucha mensajes de uno o más transportes de microservicios (Redis, NATS, Kafka, etc.). Corvis no tiene microservicios todavía (ver Microservicios), así que tampoco tiene aplicaciones híbridas ni un método para conectar transportes a una aplicación HTTP.
Lo que sí puedes combinar en una misma aplicación:
- HTTP y WebSockets. Los controladores y los
#[websocket_gateway]conviven en el mismo proceso y el mismo puerto, y comparten providers. Enexamples/tertulia,RoomsServicese inyecta tanto en el gateway como en un controlador REST, y el controlador inyecta el gateway para empujar anuncios por WebSocket. - HTTP y tareas en segundo plano.
ScheduleModule(cron, intervalos, timeouts) yEventEmitterModulecorren dentro de la misma aplicación. Ver Tareas programadas y Eventos. - Un consumidor de colas propio. Puedes arrancar un bucle de consumo (con el cliente del broker que prefieras) en
on_application_bootstrapde un provider, concorvis::tokio::spawn, y detenerlo enon_application_shutdown. Los handlers que llame no pasan por guards, pipes ni interceptors. - Un contexto sin HTTP. Para un proceso worker separado,
CorvisFactory::create_application_context::<M>()crea el contenedor de DI sin servidor. Ver Aplicaciones standalone.