Camunda - обзор
Есть ряд бизнесов и бизнес-задач когда необходимо визуально проектировать, изменять и контролировать исполнение бизнес-процессов.
Крупные компании уровня SAP, IBM, Oracle играют на этом рынке и предлагают свои тяжелые и дорогие решения.
Но есть и более легковесное и дешевое решение на этой поляне.
Речь идет о Camunda Community Edition
Я недавно познакомился с этой системой. В продакшене сам лично я ее пока не использовал, но видел очень положительные отзывы. Поэтому изучил ее, сделал на ней несколько тестовых примеров и мне она очень понравилась.
Вот так в ней выглядят процессы визуально (BPMN-нотация):
Что в Camunda особенно здорово:
- Сам движок опенсорсный и бесплатный (если брать community edition, которого, судя по отзывам, достаточно).
- Движок позволяет визуально проектировать процессы в специальном редакторе, изменять их, деплоить их, и мониторить их исполнение.
- Реализацию самих процессов можно делать на любом языке програмирования и на любой технологии.
- Т.е. вы рисуете прямоугольнички процессов, связываете их, а потом каждый прямоугольничек - это простенький код, который вы создаете на любом языке программирования.
- При этом весь процесс разработки стандартный: можете использовать git, docker, CI/CD - все что обычно вы используете, без in-house репозиториев и domain-specific-language извращений от крупного вендора, который мечтает затащить вас в свой vendor-lock.
- При этом прямоугольнички могут быть сделаны на разных технологиях. Например, один, где нужна обработка данных, может быть сделан на Golang или Python. А другой, где нужен пользовательский интерфейс для ввода или редактирования заявок, может быть сделан на Reactjs/Vuejs.
Итого я бы теперь классифицировал workflow-инструменты таким образом:
- Если нужен workflow с пакетной обработкой данных БЕЗ УЧАСТИЯ ЧЕЛОВЕКА(!) - то лучший движок - Airflow (если хочется что-то попроще и полегковеснее, то есть альтернативы, но, скорее всего, в итоге, вы прийдете к Airflow)
- Если нужен workflow с обработкой данных С УЧАСТИЕМ ЧЕЛОВЕКА(!) - то лучший движок - Camunda.
Как обычно, делюсь своей ментальной картой по тому что изучил - там есть ссылки на хорошее видео и статьи с примерами кода:
Смотрите также:
- Создание событийно-управляемых микросервисов - Глава 11 - Тяжеловесные фреймворки потоковой обработки
- Сравнение Front-end фреймворков: Angular, React, Vue
- Создание событийно-управляемых микросервисов - Глава 13 - Интегрирование событийно-управляемых микросервисов с микросервисами типа «запрос-ответ»
- Создание событийно-управляемых микросервисов - Глава 12 - Легковесные фреймворки потоковой обработки
- Создание событийно-управляемых микросервисов - Глава 10 - Базовой шаблон производителя и потребителя