Description
Why
Deduplication allow the use of a single object for several business entities.
Turning it off, the Duplicating blob store can, upon entity deletes, delete blobs used by other entities, jeoparadizing the data integrity of the server.
Note that enabling deduplication brings no bad consequences.
DOD
{{Given a James server with deduplication enabled
When I reconfigure this James server and turn off deduplication
Then this James server fails}}
How
Write a StartUpCheck checking this property.
Keep track of the value of "deduplication.enable" value via an event sourcing system.
The aggregate will ensure the rule that "deduplication should not be disabled", and your start up check will update the aggregate with the new configuration value, if it changed, effectively triggering the check.
Note that this ticket can be handled separately, only the final integration test requires dependency to other work