Configuration

All arya.outbox.* properties, a full application.yaml example, and required infrastructure endpoints.

Properties

All configuration is namespaced under arya.outbox.*:

PropertyDefaultDescription
arya.outbox.enabledtrueSet false to disable auto-configuration and the scheduler.
arya.outbox.publish-interval-ms5000Fixed delay (ms) between poll attempts. user-service uses 10000.
arya.outbox.max-retries3Max publish attempts before a record is marked FAILED. user-service uses 5.

Example

> Yaml code-highlight
arya:
  outbox:
    enabled: true
    publish-interval-ms: 10000
    max-retries: 5

Required Infrastructure

The starter publishes Avro records, so it assumes the consuming service already provides:

  • spring.kafka.bootstrap-servers — Confluent Cloud broker (inherited from Config Server, e.g. pkc-41p56...confluent.cloud:9092).
  • spring.kafka.properties.schema.registry.url — Confluent Schema Registry URL (e.g. https://psrc-81q7m7...confluent.cloud), because the producer uses the Confluent KafkaAvroSerializer.
  • spring.kafka.properties.security.protocol=SASL_SSL + sasl.jaas.config (Vault ${confluent.kafka.api.*}) and basic.auth.credentials.source=USER_INFO + basic.auth.user.info (Vault ${confluent.kafka.schema.*}) — required on Confluent Cloud, forwarded automatically by arya-banking-common:kafka:2.0.1+.
  • spring.data.mongodb.uri — Mongo connection for the outbox collection.

The producer factory is not created by the starter. It is reused from the application context — normally the one registered by arya-banking-common's KafkaConfiguration, which only activates when spring.kafka.bootstrap-servers is set. If no ProducerFactory bean exists (library missing or property unset), the relay fails at startup with NoSuchBeanDefinitionException. See <a href=

Only enable the outbox starter in services that actually publish events. For plain consumers, set arya.outbox.enabled=false to avoid a pointless scheduler loop and unused Kafka producer.