Netty, que se usa dentro de Finagle, utiliza una cartera de "manejadores" para procesar secuencialmente dentro y fuera de datos encuadernados. Los ejemplos de Netty, y las bibliotecas incluidas, muestran varios manejadores usados para cosas tales como autenticación, códecs de protocolo y la lógica comercial real del servicio.Límites entre servicios, filtros y códecs en Finagle
Parece que Finagle adopta el concepto de controlador y, en su lugar, ofrece directamente codecs, filtros y servicios a usuarios de API. Si bien estos tienen distintas firmas, los nuevos usuarios de Finagle se quedan con la tarea de decidir qué usar para implementar cada parte de su servidor global. En lugar de simplemente decidir dónde dividir la cadena en varios manipuladores Netty, ahora necesitan decidir qué parte debe ser parte de un códec, frente a cualquier filtro, frente al servicio singular al final de la cadena. En resumen, aunque Finagle es una biblioteca de nivel superior a Netty, y debería facilitar la tarea de crear el servicio, el usuario de la API puede tener más opciones para hacer.
¿Cuáles son los puntos clave de decisión, y ventajas y desventajas, para colocar una porción particular de la secuencia de procesamiento en un códec frente a un filtro frente al servicio singular? Si existe la posibilidad de que la tubería pueda extenderse más, ¿la lógica del servicio debe colocarse en un filtro, con un servicio "noop" al final de la tubería? Dada la flexibilidad en el pedido de filtros (como controladores en la línea de producción), frente al códec singular en un extremo y el servicio en el otro extremo, ¿por qué no debería ser "todo" un filtro?
Ah, y supongo que para responder más sucintamente a la pregunta en su párrafo final: Un servicio expone el comportamiento de la aplicación, y los filtros se utilizan para modificar su comportamiento de una manera genérica y modular. Entonces, por ejemplo, podría tener un Servicio que sirva un punto final HTTP, pero un filtro que convierta excepciones en agradables mensajes HTTP 500. –
Gracias, Marius, por elucidar claramente lo que se puede ganar usando Finagle en lugar de una pila de manipuladores Netty. –