Попробуйте @JsonIdentityInfo
аннотацию, указанную в этом примере. Подробнее здесь http://wiki.fasterxml.com/JacksonFeatureObjectIdentity
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class Identifiable
{
public int value;
public Identifiable next;
}
Кажется, что это должно быть довольно просто, используя Hazelcast Jet. Предполагая, что в потоке данных есть какое-то поле данных, представляющее клиента, вы можете использовать его в качестве groupingKey на стадии конвейера, а затем предоставить необходимую логику агрегирования на стадии конвейера aggregate () или rollAggregate ().
Если у вас нет клиента в потоке данных, но у вас есть некоторый идентификатор устройства, который можно сопоставить с клиентом, то это сопоставление можно выполнить на этапе конвейера map () перед группировкой и агрегированием.
Затем вы можете сливать агрегированные данные в любой подходящий приемник данных, где клиенты могут получить к нему доступ. Он может быть записан на карту с ключом клиента, или вы можете опубликовать поток в определенной для клиента теме (JMS, Kafka или аналогичной)