Я хотел бы реализовать структуру данных в scala, которая позволила бы мне дедуплицировать работу, выполняемую моей программой. Программа построена на фреймворке akka-scala.
Каждый раз, когда я получаю сообщение в своем воркере, я проверяю эту структуру данных на предмет того, что в данный момент обрабатывается. Если такой тип сообщения уже находится в процессе, я бы просто сохранил его в этой структуре данных и дождался обработанного результата. Когда придет обработанный результат, я бы отправил аки для всех сохраненных сообщений этого типа и удалил бы их из структуры
Если такой тип сообщения не найден в этой структуре данных, я бы сохранил его там и начал обработку.
Пока я думаю о чем-то вроде mutable.Map[Long, Seq[ETLMessageMeta]]
Есть ли что-нибудь лучше для такой задачи?