El canal de comunicación asíncrona de Nebula ERP se basa en Apache Kafka, desplegado mediante contenedores para garantizar la portabilidad entre nodos.
version: "3.8"
networks:
nebula-net:
external: true
services:
# Orquestador de Kafka - Zookeeper
zookeeper:
image: confluentinc/cp-zookeeper:7.4.0
container_name: nebula-zookeeper
networks:
- nebula-net
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "22181:2181"
restart: unless-stopped
# Message Broker - Kafka Server
kafka:
image: confluentinc/cp-kafka:7.4.0
container_name: nebula-kafka
networks:
- nebula-net
depends_on:
- zookeeper
ports:
- "9092:9092"
- "29092:29092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: INTERNAL://nebula-kafka:9092,EXTERNAL://10.120.0.2:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
restart: unless-stopped
# Visualización - Kafka UI
kafka-ui:
image: provectuslabs/kafka-ui:latest
restart: always
ports:
- "8080:8080"
environment:
KAFKA_CLUSTERS_0_NAME: nebula-dev
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092
KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
networks:
- nebula-net
networks:
nebula-net:
driver: bridge
Cada microservicio debe declarar sus tópicos bajo la nomenclatura:
{scope}.{tenant_id}.{service}.{resource}.{event}
Ejemplo:
audit.global.thirdparties.createbilling.t100.invoice.issuedEl acceso a Kafka UI se habilitará localmente en el puerto 8080 (vía túnel VPN) para que los desarrolladores puedan depurar los mensajes en tiempo real.
Entregable Setup Fee - Tarea 1.4.1 / 1.4.3
Versión 1.0 - Proyecto Nebula ERP
| Version | Fecha | Autor | Descripcion |
|---|---|---|---|
| 1.1.0 | 2026-03-04 | Carlos Torres | Revision, sanitizacion y publicacion en Wiki Arquitectura Centrica. |
| 1.0.0 | 2026-01-27 | Carlos Torres | Creacion del documento. |