В объяснении Мартина Фаулера архитектуры LMAX он пишет:
Unmarshaler превращает данные события из проводника в объект Java, который можно использовать для вызова поведения в процессоре бизнес-логики. Следовательно, в отличие от других потребителей, ему необходимо изменить данные в кольцевом буфере, чтобы он мог хранить этот неупорядоченный объект. Правило здесь состоит в том, что потребителям разрешено выполнять запись в кольцевой буфер, но у каждого доступного для записи поля может быть только один параллельный потребитель, которому разрешено писать в него. Это сохраняет принцип единственного автора.
Я не совсем понимаю жирный текст. Предполагая, что каждый слот разрушителя содержит ссылку на объект:
- Изменяет ли потребитель значение разрушителя (т. Е. Заставляет прерыватель ссылаться на новый объект)? Или потребитель изменяет существующий объект на месте?
- К какому «полю» он относится? Это поле класса или он имеет в виду что-то еще?
- Когда он пишет «Каждое доступное для записи поле может иметь только одного параллельного потребителя»: если поле ссылается на поле класса, то подразумевает ли он, что несколько потребителей могут писать в один и тот же объект, если они пишут в разные поля?