Яндекс Pro — это суперапп для исполнителей, выполняющих заказы клиентов разных online-to-offline-сервисов Яндекса: Такси, Самокатов, Доставки, Еды, Лавки, Маркета. Но так было не всегда, раньше Яндекс Pro был только водительским приложением Такси. Я расскажу о том, какие архитектурные принципы позволили пройти этот путь, тем самым это поможет командам разработки множества бизнесов развивать общее высоконагруженное приложение, сохраняя и его стабильность и скорость разработки.
Мы обсудим технические проблемы, которые создаёт суперапп: общий домен отказа у разных бизнесов и протекание абстракций, как следствие — ухудшение отказоустойчивости, замедление разработки и усложнение поддержки приложения.
Эти проблемы нам удалось решить, выделив продуктовую платформу — слой между инфраструктурой и продуктом, представляющий собой скелет приложения и набор готовых компонентов, из которых разные бизнесы могут собирать сценарии для своих профессий, не влияя при этом друг на друга. Я расскажу, какие архитектурные принципы позволили построить такую продуктовую платформу, а также про паттерны распределённых систем, позволяющих эти принципы воплощать в жизнь.