Уточняю (по примеру) исходный вопрос: нарушение инварианта при чтении (не считая появляения Stores.Alien), идеологически правильно обработать:
- ASSERT-м, как в примере выше
- переводом сторы в Alien: rd.TurnIntoAlien(мойКодПричины_НарушенИнвариантХХХ)
?