О проекте: Мы разрабатываем Маркетплейс нового поколения. Наша система — это разветвленная сеть микросервисов, которые общаются не только друг с другом, но и с множеством внешних партнеров (банки, платежные шлюзы, провайдеры данных). Главные приоритеты для нас: отказоустойчивость, идемпотентность и консистентность финансовых транзакций.
Задачи:
- Разработка ядра системы: Проектирование и реализация микросервисов, отвечающих за движение средств и учет.
- Работа с транзакциями: Реализация распределенных транзакций (Saga, 2PC) и обеспечение консистентности данных между сервисами.
- Отказоустойчивость: Реализация механизмов Retries, Circuit Breaker, Rate Limiting и обеспечение идемпотентности всех операций.
- Оптимизация: Уменьшение задержек (latency) при межсервисном взаимодействии.
- Уверенный Go: Опыт от 3-х лет. Вы должны понимать, как писать код, который не течет по памяти и держит высокую нагрузку.
- Микросервисная архитектура: Глубокое понимание паттернов распределенных систем (Service Discovery, API Gateway, Circuit Breaker).
- Протоколы взаимодействия:
- Опыт написания контрактов gRPC/Protobuf.
- Умение работать с брокерами сообщений (Kafka или RabbitMQ/NATS) — понимание at-least-once, exactly-once, ordering.
- Базы данных (PostgreSQL):
- Понимание уровней изоляции транзакций (Isolation Levels) и проблем конкурентного доступа.
- Умение оптимизировать сложные SQL-запросы.
- Опыт реализации паттерна Saga или TCC (Try-Confirm-Cancel).
- Опыт работы с распределенной трассировкой (OpenTelemetry/Jaeger) — умение найти, где "застрял" запрос в цепочке из 5 сервисов.
- Опыт работы с криптографией (подписи, шифрование, ГОСТ алгоритмы — если актуально).