Skip to main content

Configuration reference

All properties use the prefix jeap.messaging.sequential-inbox. Sequencing behaviour itself is declared in the YAML descriptor (see Sequence declaration reference); the properties below tune the runtime, housekeeping, pending-action and metrics jobs.

Kafka consumer configuration

When a message is released, the inbox may immediately release further buffered messages for the same contextId within the same Kafka poll. This means a single Kafka poll can trigger the processing of several messages. If technical processing tends to be on the longer side, the default max.poll.interval.ms may not be sufficient. Increase it to account for the maximum time needed to process one received message plus all messages that may be released as a result.

See the Kafka Consumer configuration for details.

Hikari connection-pool configuration

The Sequential Inbox holds a database lock for the duration of each message-processing call (see Multi-instance support). The default Hikari maximum pool size of 4 is too small and can cause connection starvation under load. Set it to at least 10:

jeap:
datasource:
hikari:
maximum-pool-size: 10

Core

NameDefaultDescription
enabledtrueEnable the Sequential Inbox auto-configuration
config-locationclasspath:/messaging/jeap-sequential-inbox.ymlLocation of the sequencing descriptor
sequencing-start-timestampWhen set, enables recording mode until this LocalDateTime: predecessors are processed immediately and only recorded (see How sequencing works)
idle-lock-timeout-seconds600Sets idle_in_transaction_session_timeout (as value * 1000 ms) for the sequence-instance lock transaction. Set to -1 to use the database server default.

Housekeeping (jeap.messaging.sequential-inbox.housekeeping.*)

NameDefaultDescription
enabledtrueEnable the housekeeping jobs
delay— (required)Buffer Duration added to a sequence's retain until before housekeeping forwards its messages to error handling
max-continuous-house-keeping-duration15mMax time a single housekeeping run may run continuously; cannot exceed 15 minutes
sequence-removal-batch-size10Number of sequence instances deleted per batch
closed-instances-cron0 0/15 * * * *Cron for cleaning up closed sequence instances
expiry-cron0 5/15 * * * *Cron for marking expired sequence instances
delete-for-removal-cron0 10/15 * * * *Cron for removing sequence instances flagged for removal

Pending actions (jeap.messaging.sequential-inbox.pending-actions.*)

These control the scheduler that processes DevOps pending actions (see DevOps operations).

NameDefaultDescription
messages-cron0 0/2 * * * *Cron checking for pending actions on messages
sequences-cron0 1/2 * * * *Cron checking for pending actions on sequence instances
lock-at-least5sMinimum ShedLock hold time for the job
lock-at-most30mMaximum ShedLock hold time for the job
page-size50Query page size
max-pages10Maximum pages processed per run (bounds the run time)

Metrics (jeap.messaging.sequential-inbox.metrics.*)

NameDefaultDescription
update-rate-minutes5How often the gauge metrics are recomputed
expiring-percentile0.75Fraction of the retention period after which a sequence counts as "expiring soon"

See Housekeeping, retention & metrics for the exported metric names.