Для упрощения интеграции предлагается два варианта передачи данных о билетах и их статусах в Vibeapp. Формат сообщений — JSON
flowchart LR
TL[Ticketland]
V[Vibeapp]
subgraph Kafka
E[Events]
OR[Orders]
R[Refunds]
end
TL --> E
TL --> OR
TL --> R
E --> V
OR --> V
R --> V
V --> DB[(Vibe DB)]
Vibeapp получает информацию о проданных билетах и их статусах из стрима заказов, а изменения статусов — из стрима возвратов.
Топики Kafka:
- Мероприятия (events) — Event JSON (Должны быть синхронизированы до обработки заказов)
- Заказы (orders) — Order JSON,
- Возвраты (refunds) — Refund JSON,
Набор топиков может быть изменён по согласованию между командами в зависимости от потребностей.
Примеры сообщений в формате JSON приведены в соответствующих файлах по ссылкам выше. Для Protobuf-сообщений схемы также доступны по ссылкам в описании топиков.
Для сообщений обязательно указывать следующие заголовки:
content-type:application/jsonschema-version: версия схемы сообщения (например,1.0)application-id: идентификатор источника данных (например,ticketland)
В качестве ключа сообщения рекомендуется использовать уникальный идентификатор сущности (например,
event_id, order_id).
- Bootstrap servers:
rc1a-agdu796r4205p5ip.mdb.yandexcloud.net:9091 - Security protocol:
SASL_SSL - SASL mechanism:
SCRAM-SHA-512 - SSL CA certificate:
https://storage.yandexcloud.net/cloud-certs/CA.pem - SASL Username: предоставляется по запросу
- SASL Password: предоставляется по запросу
- Bootstrap servers:
rc1a-faass3ffar5s5q6o.mdb.yandexcloud.net:9091 - Security protocol:
SASL_SSL - SASL mechanism:
SCRAM-SHA-512 - SSL CA certificate:
https://storage.yandexcloud.net/cloud-certs/CA.pem - SASL Username: предоставляется по запросу
- SASL Password: предоставляется по запросу
В настоящее время Vibeapp получает данные о мероприятиях и билетах из Kafka-стримов Ticketscloud. Стримы передают информацию об организаторах, мероприятиях, заказах и возвратах билетов. Формат сообщений — Protobuf.
Текущие стримы ориентированы на внутренние процессы Ticketscloud и избыточны для внешней интеграции, так как содержат много специализированных полей.
Kafka-топики:
- Организаторы — данные об организаторах мероприятий (Partner Proto)
- Мероприятия — события, создаваемые организаторами (Event Proto)
- Заказы — информация о заказах и купленных билетах (Order Proto)
- Возвраты — данные о возвратах билетов (Refund Proto)
Стрим возвратов используется для актуализации статусов билетов в Vibeapp.