The best solution is Event Sourcing: don't make a replaceable state, but a list of add and remove events.
Had the same thought.
Please Login to reply.
Wouldn't the issue then be needing a full history of events to recompose the state?