Опыт создания и использования DSL в платформе обработки данных с JetBrains MPS Взаимодействие
Если вы когда-либо разрабатывали транспортный шлюз или платформу для обработки данных, которая будет поставляться заказчику, то наверняка задумывались, о том, как специалисты заказчика будут конфигурировать поведение платформы для разных источников и типов данных. В простых случаях это может решаться путем конфигурации элементов платформы, в более сложных уже нужны сценарии по преобразованию данных и их последующей обработки. А что делать, если необходимо обогащение содержимого входящего события данными из внешних источников? А если необходимо задавать сложные алгоритмы маршрутизации? Сценарий превращается в сложную программу!
В докладе мы расскажем о том, как мы решали эту задачу. Нам не подошли решения по включению поддержки существующих скриптовых языков, мы создали свой язык при помощи JetBrains MPS. Мы научили специалистов самостоятельно создавать сценарии, с возможностью выполнять параллельные запросы к хранилищам внешних данных, предоставили им удобную среду для разработки, проверки и выкату новых версий на работающую платформу. Мы же теперь занимаемся развитием функциональности самой платформы и наполнением языка удобными для использования конструкциями.
Занимается программированием уже 30 лет. Много лет разрабатывал системы, использующие реляционные БД. Затем 15 лет работал над созданием центров передачи сообщений в телекоммуникационной области, что потребовало изменить подходы к организации данных для обеспечения быстрой обработки больших потоков сообщений. Последнее время специализируется на разработке горизонтально масштабируемых систем обработки данных, использующих нереляционные БД.