Presión de retroceso

Por virtud de utilizar el Akka Streams la biblioteca, los conectores están diseñados para ser reactivos, es decir, basados en la demanda.

Esto significa que nos beneficiamos de la contrapresión y podemos manejar cargas pesadas sin una gran pérdida de rendimiento, o que los sistemas se bloqueen debido al consumo excesivo de recursos (siempre que el sistema esté ajustado correctamente).

Akka Streamsestán compuestos por tres componentes principales que, juntos, forman un grafo ejecutable. Estas son fuentes, sumideros y flujos. Las fuentes son productores (emiten mensajes), los sumideros son consumidores (reciben mensajes) y los flujos son una combinación de ambos (transforman mensajes).

Los consumidores pueden señalar la demanda de más mensajes, lo cual es beneficioso ya que de esta manera los consumidores no se ven inundados de mensajes. El uso de la sobrepresión de esta manera es más efectivo cuando los mensajes se escriben en algún almacenamiento de datos intermedio, es decir, en un almacén de eventos, base de datos, tema de Kafka o cola JMS, ya que de esta forma los picos en la producción de mensajes no afectarán a los consumidores aguas abajo.

En algunas situaciones (por ejemplo,HTTP el retroceso puede causar que las solicitudes sean rechazadas bajo una carga pesada, ya que los mensajes no tienen a dónde ir si los consumidores no pueden procesarlos lo suficientemente rápido. Aunque esta situación es la misma con o sin contrapresión.