Saltar a contenido

Configuración

Configuracion de la aplicacion

Tentacolous necesita que tu aplicacion tenga una conexion de base de datos. Ejemplo de application.yml:

tentacolous:
  enabled: true
  schema-management: auto
  event-table: db_change_event
  poll-interval: 1s
  initial-delay: 0s
  batch-size: 100
  max-attempts: 3

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb
    username: postgres
    password: postgres
    driver-class-name: org.postgresql.Driver

Propiedades disponibles

Propiedad Valor por defecto Que hace
tentacolous.enabled true Activa o desactiva Tentacolous.
tentacolous.schema-management auto Define si Tentacolous crea, valida o ignora la infraestructura de base de datos.
tentacolous.event-table db_change_event Nombre de la tabla de eventos.
tentacolous.poll-interval 1s Frecuencia con que se leen eventos pendientes.
tentacolous.initial-delay 0s Demora antes de iniciar el poller.
tentacolous.batch-size 100 Numero maximo de eventos leidos por ciclo.
tentacolous.max-attempts 3 Limite de reintentos antes de marcar un evento como FAILED.

Sinks para colas de mensajes

Estas propiedades solo se leen cuando la dependencia de Spring correspondiente esta en el classpath. Guia completa: Colas de mensajes.

Propiedad Valor por defecto Que hace
tentacolous.kafka.enabled false Publica cada cambio en Kafka.
tentacolous.kafka.topic (vacio) Topic fijo. Si esta vacio, el topic es topic-prefix + nombre de entidad.
tentacolous.kafka.topic-prefix (vacio) Prefijo del topic por entidad, p. ej. cdc..
tentacolous.kafka.format envelope envelope (antes/despues + metadata) o raw (payload de la fila).
tentacolous.kafka.add-headers true Agrega headers tentacolous-*.
tentacolous.kafka.send-timeout 10s Espera del acuse del broker antes de fallar el evento.
tentacolous.rabbitmq.enabled false Publica cada cambio en RabbitMQ.
tentacolous.rabbitmq.exchange tentacolous Topic exchange donde publicar.
tentacolous.rabbitmq.routing-key-prefix (vacio) Prefijo de la routing key entity.operation.
tentacolous.rabbitmq.format envelope envelope o raw.
tentacolous.rabbitmq.declare-exchange true Declara el topic exchange durable al arrancar.
tentacolous.rabbitmq.add-headers true Agrega headers tentacolous-*.

Modos de schema management

Modo Uso comun Comportamiento
auto Desarrollo Crea la tabla, funcion y triggers si hace falta.
create Ambientes de desarrollo controlados Fuerza la creacion de infraestructura soportada.
validate Produccion Valida que la infraestructura exista sin crearla.
none Produccion con migraciones No crea ni valida infraestructura.

Para comenzar, usa schema-management: auto. En produccion, validate o none suele ser mejor porque crear triggers requiere permisos elevados en la base de datos.