Кто принимал решения по архитектуре сервиса лояльности
Что проверяют
Это вопрос по вашему резюме: интервьюер проверяет, реально ли вы участвовали в архитектуре или пересказываете чужие решения. Кто именно решал, важно меньше, чем то, насколько глубоко вы понимаете причины. Следом начнут копать детали: как считали баланс, что было с повторными начислениями.
Как отвечать
Сначала коротко и честно про роли: кто проектировал (архитектор, техлид, вы), кто утверждал, как решение фиксировали. Затем переходите к сути, потому что проверять будут именно её. У сервиса лояльности есть типовые развилки, и хорошо, если вы расскажете про свои:
- хранение баллов: журнал операций (ledger) с начислениями и списаниями, баланс считается из журнала или хранится отдельно и сверяется с ним. Менять баланс одним
UPDATEбез истории нельзя: не разберёте ни одну жалобу; - идемпотентность: одна покупка не должна начислить баллы дважды, если касса или брокер повторили сообщение. Обычно это уникальный ключ операции в базе;
- конкурентные списания: два одновременных списания не должны увести баланс в минус. Решается через
SELECT ... FOR UPDATEили оптимистичную блокировку с версией строки; - интеграция: синхронный вызов с кассы с жёстким таймаутом через
context.WithTimeoutили асинхронное начисление по событиям из Kafka с паттерном transactional outbox; - правила акций: захардкожены в коде или вынесены в настраиваемый движок правил.
Для Go уместно назвать, на чём строили: pgx для PostgreSQL, gRPC или HTTP между сервисами, воркеры на горутинах для обработки событий.
Если вы пришли в проект с готовой архитектурой, так и скажите, и расскажите, что в ней поняли, что изменили бы и что успели доработать сами.
Где спотыкаются
Отвечают «решали архитекторы» и не могут объяснить ни одного решения. Тогда строчка про сервис лояльности в резюме теряет вес.
Рассказывают про Docker и Kubernetes вместо устройства самого сервиса. Инфраструктура не заменяет архитектуру предметной области.
Не вспоминают про повторную доставку сообщений. Для сервиса, где баллы по сути деньги, двойное начисление это главный риск, и интервьюер почти наверняка про него спросит.