Строю высоконагруженные бэкенды на Akka — на Scala или Java — и умею заставить модель акторов работать там, где обычный многопоточный код рассыпается на гонках и блокировках. Если вашему сервису нужно держать десятки тысяч живых соединений, вести состояние по каждому клиенту прямо в памяти и гарантированно доставлять сообщения, я собираю дерево акторов, продумываю супервизию и обратное давление так, чтобы падение одного узла не тянуло за собой весь кластер.
В работе использую весь стек Akka: cluster sharding раскидывает сущности по узлам, Akka Streams даёт конвейеры с ограниченной памятью и back-pressure, persistence и event sourcing вместе с CQRS разводят запись и чтение, а split-brain resolver не даёт разорванной сети испортить данные. Отдельно занимаюсь тем, о чём вспоминают уже в проде: пассивацией простаивающих акторов, выкаткой обновлений без остановки, доставкой at-least-once с идемпотентными обработчиками.
Пишите, если нужна система, которая не прячет конкурентность за мьютексами, а работает с ней открыто. Разберу текущую архитектуру или спроектирую с нуля, покрою акторов тестами и отдам понятный код. Обычно берусь за:
— новые сервисы на акторах и протоколы обмена сообщениями;
— перевод блокирующего кода на Akka Streams;
— внедрение cluster sharding и event sourcing в действующий продукт;
— вывод из кризиса проекта, который под пиками ловит дедлоки и утечки акторов.
В работе использую весь стек Akka: cluster sharding раскидывает сущности по узлам, Akka Streams даёт конвейеры с ограниченной памятью и back-pressure, persistence и event sourcing вместе с CQRS разводят запись и чтение, а split-brain resolver не даёт разорванной сети испортить данные. Отдельно занимаюсь тем, о чём вспоминают уже в проде: пассивацией простаивающих акторов, выкаткой обновлений без остановки, доставкой at-least-once с идемпотентными обработчиками.
Пишите, если нужна система, которая не прячет конкурентность за мьютексами, а работает с ней открыто. Разберу текущую архитектуру или спроектирую с нуля, покрою акторов тестами и отдам понятный код. Обычно берусь за:
— новые сервисы на акторах и протоколы обмена сообщениями;
— перевод блокирующего кода на Akka Streams;
— внедрение cluster sharding и event sourcing в действующий продукт;
— вывод из кризиса проекта, который под пиками ловит дедлоки и утечки акторов.