Este proyecto contiene la configuración y despliegue de la plataforma Confluent, para usar **Apache Kafka**.
## Descripción
Se compone de una serie de ficheros *docker-compose*, organizados por niveles:
* zookeeper: Lanza servicios de **Apache Zookeeper** para coordinar a los otros servicios (brokers y workers).
* kafka: Lanza servicios de **Apache Kafka**, que actuan como brokers para comunicar unos servicios con otros.
* workers: Lanza servicios que explotan la red de Kafka y sirven de apoyo a otros servicios.
* uis: Lanza servicios que permiten gestionar visualmente la red de Kafka y sus servicios.
Es importante, en un despliegue desde cero, seguir el orden por niveles expuesto en el listado anterior. Dentro de cada nivel, se puede seguir el orden que se prefiera, no debería haber ningún problema.
Los despliegues, tanto en desarrollo como en producción, se han de ejecutar manualmente (aunque se preparan las tareas automáticamente para ello) desde este repositorio en GitLab.
Hay un caso especial dentro del nivel de *workers*, el servicio **connector-supplier**. Se trata de una imagen propia, encargada de registrar *conectores* en el servicio *connect* de Confluent.
Para definir nuevos conectores, han de añadirse al directorio *scripts* de este repositorio.
Se pueden configurar muchos parámetros de la plataforma a base de variables de entorno. Cada nivel cuenta con un fichero *.env* que define valores por defecto para dichas variables, pero se pueden asignar desde fuera (por ejemplo, desde *.gitlab-ci.yml*).
## Comandos útiles
A continuación, una serie de comandos que pueden resultar de interés como ejemplo.
### Gestión de conectores
```
// primero, entrar a contenedor con acceso a servicio de connect
// crear conector hacia S3
curl -s -X POST -H "Content-Type: application/json" --data \