Очередь без серверов и головной боли: как устроен Serverless Queue в MWS Cloud Platform
У Kafka есть неприятная эксплуатационная сторона: локальные диски брокеров, репликация, перераспределение партиций и планирование ёмкости.
В MWS Cloud Platform попробовали убрать из этой схемы саму необходимость привязывать данные к брокерам.
В Serverless Queue любой брокер может принять запрос в любую партицию, сообщения хранятся отдельно от него, а Kafka-клиент продолжает работать с привычным протоколом. Сообщения разных топиков и разных арендаторов могут храниться внутри одного S3-объекта.
За отсутствие собственного Kafka-кластера и перемещения данных приходится платить другим свойством системы.
Узнаем, где именно проходит этот компромисс и как вокруг него устроена архитектура из семи Go-сервисов.