Configuration
All arya.outbox.* properties, a full application.yaml example, and required infrastructure endpoints.
Properties
All configuration is namespaced under arya.outbox.*:
| Property | Default | Description |
|---|---|---|
arya.outbox.enabled | true | Set false to disable auto-configuration and the scheduler. |
arya.outbox.publish-interval-ms | 5000 | Fixed delay (ms) between poll attempts. user-service uses 10000. |
arya.outbox.max-retries | 3 | Max publish attempts before a record is marked FAILED. user-service uses 5. |
Example
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 ConfluentKafkaAvroSerializer.spring.kafka.properties.security.protocol=SASL_SSL+sasl.jaas.config(Vault${confluent.kafka.api.*}) andbasic.auth.credentials.source=USER_INFO+basic.auth.user.info(Vault${confluent.kafka.schema.*}) — required on Confluent Cloud, forwarded automatically byarya-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.