Во время крупного проекта миграции микросервисов в моей предыдущей компании я не согласился со старшим архитектором по поводу подхода к проектированию базы данных. Он хотел сохранить общую базу данных для нескольких сервисов ради "эффективности", а я считал, что это нарушит основной принцип независимости сервисов и создаст тесную связанность, которая подорвет саму идею микросервисной архитектуры.
Моя ответственность была добиться его поддержки правильного паттерна микросервисов, при этом сохраняя нашу профессиональную репутацию и сроки проекта. Мне нужно было убедить его, что каждый сервис должен иметь свою выделенную базу данных, не давая ему при этом почувствовать себя недооценённым — особенно с учётом его статуса.
Я выбрал совместный подход вместо конфронтационного:
Изучив доказательства и посмотрев proof-of-concept, архитектор согласился попробовать паттерн database-per-service на пилотных сервисах. Пилот прошёл успешно: циклы деплоя ускорились на 40%, а изоляция сбоев заметно улучшилась. В итоге он стал активным сторонником этого паттерна и даже представил наш подход на внутреннем tech talk. Этот опыт научил меня, что обсуждения, опирающиеся на данные, и совместный поиск решений работают куда эффективнее, чем просто оказаться правым, а уважение к чужому опыту при отстаивании альтернативной точки зрения выстраивает более крепкие профессиональные отношения.
Подход кандидата к организации приватной встречи один-на-один был мотивирован в первую очередь желанием избежать неловкости для старшего архитектора, а не предотвращением защитных реакций, которые могли бы помешать продуктивному диалогу.
Новый — ещё не проверен сообществом
Вы