Apache Airflow: Batch Processing platform

Airflow es una plataforma de Batch Processing donde podremos crear, programar y supervisar dichos flujos de trabajo y todo mediante DAGs. Airflow ejecuta las tareas en un conjunto de workers mientras continúa con las dependencias especificadas. Dispone de una más que completa línea de comandos que permite realizar configuraciones un tanto complejas en los DAGs, como también de una correcta interfaz de usuario que facilita la visualización de las pipelines que se están ejecutando en producción, para su monitoreo y aplicar resolución de problemas cuando sea necesario. [Leer más]

Faust: Stream Processing for Python

Faust es una librería de procesamiento en flujo distribuido que ha sido diseñada y construida para manejar el procesamiento de grandes cantidades de datos en tiempo real. Se inspira en Kafka Streams, pero adopta un enfoque ligeramente diferente en el procesamiento de los flujos. Faust está escrito en Python 3, aprovechando así sus notables mejoras de rendimiento y se integra con su librería asyncio (Asynchronous I/O), escrita para facilitar los procesos asíncronos de alto rendimiento. [Leer más]

Enterprise Data Hub (EDH)

Aunque sabemos que las arquitecturas Enterprise Data Hub (EDH) no son especialmente recomendadas, podemos decir que en muchas situaciones, pueden ayudarnos y bastante. Como idea base tenemos que tener claro que nunca en nuestra EDH tendremos la lógica del negocio, la usaremos “simplemente” como streams de datos. Una manera interesante de conectar distintos tipos de source es mediante una EDH, aunque tendremos distintos tipos de “caminos”, los generados directamente por eventos (PUSH) o los que tendremos que hacer una recuperación para inyectar los datos en el procesos (PULL). [Leer más]

API with Express, Mongoose & MongoDB

Cuando queremos tener una arquitectura desacoplada o, cuando necesitamos tener un acceso programático a nuestro producto y/o servicio, lo más normal y común es tener un servicio de API. Concretamente una API RESTful para, por ejemplo, poder ofrecer servicios como: GET para consultar y leer, POST para crear, PUT para editar y DELETE para eliminar. Bien, uno de los lenguajes más famosos y, recomendable, para poder construir nuestra API RESTful es NodeJS y más concretamente su Framework Express que nos proporciona muchas herramientas útiles para poder organizar nuestra aplicación. [Leer más]

Replicando datos en tiempo real (Log Shipping vs Mirror Data)

Hemos hablado bastante sobre “Stream Processing”, “Data Stream”, “Distributed Real-Time Stream Processing”, “Data Sharding”, etc… pero, por lo general, siempre contamos con que tendremos una fuente de datos lo suficientemente preparada como para poder coger los datos y convertirlos en procesos o streams. Pero, seamos sinceros, raramente pasa. Es por eso que tenemos soluciones interesantes cuando, por ejemplo, tenemos una base de datos SGBD (puede ser Oracle o SQLServer) y queremos realizar una réplica de la base de datos origen hacia un destino. [Leer más]