Митап объединил экспертов Java из Nexign и не только. Делимся краткими итогами: о чём рассказывали спикеры, какие кейсы рассмотрели и какие вопросы обсудили.
Перед тем, как перейдём к первому докладу, представим ситуацию: есть приложение, к которому применяется паттерн Database per Service, у каждого сервиса приложения есть своя собственная база данных. Некоторые бизнес-транзакции охватывают сразу несколько сервисов, так что нужен механизм, обеспечивающий согласованность данных между этими сервисами. Приложение должно гарантировать, что новый заказ не превышает лимит клиента. Так как Заказы и Клиенты — различные базы данных, то приложение не может использовать локальные ACID транзакции.
Как обеспечить согласованность данных между сервисами? Именно на этот вопрос ответила Екатерина Попкова (Nexign) в рамках доклада: «Сага» как один из паттернов управления данными в микросервисной архитектуре». Она рассмотрела варианты архитектур ПО, плюсы и минусы каждой из них, а также случаи, когда стоит выбирать ту или иную архитектуру для своего проекта.
Участники кратко обсудили паттерны микросервисной разработки и более подробно разобрали один из них, а именно паттерн «Сага». Посмотрели его реализацию с использованием Java, Spring Boot, Kafka. Также была упомянута книга «Микросервисы. Паттерны разработки и рефакторинга» за авторством Ричардсона Криса.
Сам паттерн Сага был рассмотрен на примере с интернет-магазином, в основе использовался способ координации «хореография». В конце выступления Екатерина вместе с участниками порассуждали, как можно поддержать согласованность и изолированность.
Во второй части митапа Донат Фетисов («Билайн») поделился знаниями по теме: «Apache Kafka – баланс безопасности, скорости и эффективности». Он рассказал о нескольких паттернах использования Apache Kafka, которые встречал на практике, и какие требования предъявляются к Apache Kafka в продуктовой Enterprise-среде.
Вместе участники обсудили размеры кластеров и вспомнили, какие настройки можно изменять на уровне операционной системы и самих служб Apache Kafka. Обменялись мнениями: какой дистрибутив выглядит интереснее сегодня с точки зрения использования – Confluent или vanilla?
А если вы пропустили митап, то проведите два часа с удовольствием и пользой и посмотрите запись на YouTube-канале Nexign team — https://www.youtube.com/watch?v=RmlYauQOjw0