Я инженер данных, для которого потоки событий — родная стихия, а Apache Kafka — та технология, вокруг которой строятся мои проекты. Обращайтесь, если вашим микросервисам нужно обмениваться данными асинхронно, если отчётность должна обновляться в реальном времени, а не раз в сутки, или если бизнес не может позволить себе потерю хотя бы одного события. Я не раз доводил кластеры Kafka от пилотной сборки до промышленной эксплуатации с нагрузкой в миллионы сообщений в час и понимаю, на каких мелочах обычно всё ломается.
Отправная точка для меня — сама модель данных. Я описываю бизнес-процессы как последовательность событий, определяю границы каждого топика и подбираю ключ партиционирования, который удерживает нужный порядок сообщений и при этом ровно раскладывает нагрузку по брокерам. После этого собираю поток целиком: продюсеры под скорость или под гарантированную доставку, группы потребителей под реальный объём и обработчики на Kafka Streams либо Flink, которые соединяют, сворачивают и дополняют данные прямо в движении. Режим exactly-once для меня не лозунг: идемпотентные продюсеры и транзакции гарантируют, что повторная отправка не породит дубликат у получателя.
Отдельно занимаюсь тем, что делает систему предсказуемой в эксплуатации. Настраиваю реестр схем, чтобы форматы менялись без поломки совместимости, разворачиваю Kafka Connect для загрузки и выгрузки данных между СУБД и хранилищами, заранее закладываю очереди недоставленных сообщений, метрики и оповещения о росте отставания потребителей. Если проект стартует с чистого листа или нужно спасти нестабильный конвейер, теряющий сообщения, — помогу выстроить решение, на которое можно положиться.
— Архитектура кластера Kafka, схема топиков и партиций, настройка хранения
— Продюсеры и группы потребителей, работа с офсетами, ребаланс
— Стрим-обработка на Kafka Streams и Apache Flink
— Режим exactly-once, идемпотентная и транзакционная запись
— Kafka Connect, реестр схем, форматы Avro и Protobuf
— Наблюдаемость, оповещения об отставании и разбор недоставленных сообщений
Отправная точка для меня — сама модель данных. Я описываю бизнес-процессы как последовательность событий, определяю границы каждого топика и подбираю ключ партиционирования, который удерживает нужный порядок сообщений и при этом ровно раскладывает нагрузку по брокерам. После этого собираю поток целиком: продюсеры под скорость или под гарантированную доставку, группы потребителей под реальный объём и обработчики на Kafka Streams либо Flink, которые соединяют, сворачивают и дополняют данные прямо в движении. Режим exactly-once для меня не лозунг: идемпотентные продюсеры и транзакции гарантируют, что повторная отправка не породит дубликат у получателя.
Отдельно занимаюсь тем, что делает систему предсказуемой в эксплуатации. Настраиваю реестр схем, чтобы форматы менялись без поломки совместимости, разворачиваю Kafka Connect для загрузки и выгрузки данных между СУБД и хранилищами, заранее закладываю очереди недоставленных сообщений, метрики и оповещения о росте отставания потребителей. Если проект стартует с чистого листа или нужно спасти нестабильный конвейер, теряющий сообщения, — помогу выстроить решение, на которое можно положиться.
— Архитектура кластера Kafka, схема топиков и партиций, настройка хранения
— Продюсеры и группы потребителей, работа с офсетами, ребаланс
— Стрим-обработка на Kafka Streams и Apache Flink
— Режим exactly-once, идемпотентная и транзакционная запись
— Kafka Connect, реестр схем, форматы Avro и Protobuf
— Наблюдаемость, оповещения об отставании и разбор недоставленных сообщений