Skip to content

Merge archiver configuration with retention configuration #26492

@npepinpe

Description

@npepinpe

Description

Right now, you can configure retention via ZEEBE_BROKER_EXPORTERS_CAMUNDA_ARGS_RETENTION_*, and archiver properties (e.g. rollover interval) via ZEEBE_BROKER_EXPORTERS_CAMUNDA_ARGS_ARCHIVER_*.

This is because we consider retention to be tied to ILM/data deletion, and archiving to just creating the rollover indices. I think that's fine in terms of implementation details, but from a user perspective, it's likely the same general concern.

Archiving is implementation details of how we handle data retention, so the archiver properties should be merged with the retention configuration. That would mean:

public static final class RetentionConfiguration {
    private boolean enabled = false;
    private String minimumAge = "30d";
    private String policyName;
}

Becomes:

public static final class RetentionConfiguration {
    private boolean enabled = false;
    private String minimumAge = "30d";
    private String policyName;

    private boolean rolloverEnabled = true;
    private String elsRolloverDateFormat = "date";
    private String rolloverInterval = "1d";
    private int rolloverBatchSize = 100;
    private String waitPeriodBeforeArchiving = "1h";
    private int delayBetweenRuns = 2000;
}

You could also make rollover a sub type of RetentionConfiguration, I have no strong opinion on this.

I suspect most users will only configure the retention configuration, and advanced users may configure rollover, but likely only the interval and format. Everything else is advanced or ways for us to mitigate issues with archiving.

Sub-issues

Metadata

Metadata

Assignees

Labels

component/zeebeRelated to the Zeebe component/teamkind/toilCategorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc.version:8.8.0-alpha2

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions