Kotlin coroutines y Spring Framework 5 types reactivos

Las corotinas de Kotlin permiten ejecutar código que no sea de locking devolviendo el valor Defernetworking . Esto es realmente útil para crear código no bloqueante al usar methods de locking (desde una biblioteca, por ejemplo).

Spring 5 permite usar Mono y Flux en el marco. El gran interés que veo es la capacidad de serializar instancias de estos dos types y enviarlos de return como respuesta cuando alguien llama a un punto final de controller.

Uno de los puntos principales de Spring 5 es tener un soporte específico para Kotlin (enrutador, statement de frijoles, …), pero no puedo encontrar información sobre las posibles interacciones entre las corotinas de Kotlin y los types reactivos de Spring 5.

¿Hay alguna manera de combinar las ventajas de estas características?

  • convirtiendo Defernetworking en Mono / Flux ?
  • teniendo un tipo de respuesta Defernetworking de los methods del controller de spring?

En caso negativo, ¿en qué casos tiene sentido coroutine si tenemos types reactivos de Spring 5?

Coroutines proporciona soporte para Reactor Core 3.1, utilizado en Spring Framework 5, a partir de kotlinx.coroutines 0.19.1 .

Actualmente, el soporte de Spring Framework 5 Coroutines es un trabajo en progreso como un experimento en el proyecto comunitario spring-kotlin-coroutine . Tal soporte no está planeado aún para su integración en Spring Framework 5 de forma nativa, pero existe SPR-15413 que puede seguir y eventualmente votar. Para sus preguntas sobre cómo encajan Flux y Mono en el mundo Corutinas, vea este comentario .

Tenga en count que las Corutinas son todavía experimentales, y los pros y los contras deben evaluarse cuidadosamente antes de tomar la decisión de apoyarlos oficialmente o no. También Bridging Reactive y Coroutines tiene algunas limitaciones, especialmente en el soporte de contrapresión (Coroutines desencadena la demanda temprana y solo puede realizar la request(1) ).

En el lado de JVM, también es probable que sea una buena idea ver cómo evolucionará Project Loom y cómo podría ser aprovechado por los ecosistemas reactivos y de las Corutinas.