En el mundo PHP hay una serie de proyectos muy interesantes, alrededor de lo que se llama ReactPHP. Este post es un codekata sobre cómo empezar con esta herramienta de trabajo en Sistemas Distribuidos. Se trata de cómo crear proyectos a base de microservicios, encapsulando un servidor web HTTP de alto rendimiento construido 100% en PHP dentro de cada microproyecto.
Este servidor web HTTP no está en desarrollo, como reza su web, y ya se está usando en millones de instalaciones en producción.
La idea principal no es nueva. Simplemente se usan loops, los clásicos bucles infinitos, en los que se establecen y procesan peticiones asíncronas, siempre tratando de sacar el máximo rendimiento. El cuello de botella normalmente está en los input/output que se hacen a ficheros, red, etc.. entonces se alcanza su máximo rendimiento no procesando linealmente, sino asíncronamente cada petición en un mismo núcleo de procesador al 100%.
Este sistema se puede balancear y escalar horizontalmente de igual forma que cualquier otro sistema, pero más fácil porque ya tenemos el servidor web embebido. Se eliminan entonces intermediarios, que siempre van a tener un coste de computación.
Si a esto le unimos la velocidad de las últimas versiones de PHP7+ 8+, con la compilación JIT Just In Time, tenemos un cócktel muy pero que muy interesante. Empezamos con el codekata?¿
Continuar leyendo..