Компания Apache объявила о том, что проект EventMesh вышел из стадии инкубации и теперь является проектом верхнего уровня. EventMesh был разработан компанией WeBank и может использоваться в событийно-управляемых и бессерверных архитектурах для упрощения разработки событийно-управляемых приложений в сложных распределенных системах.
EventMesh позволяет разработчикам создавать бесшовные, бессерверные событийно-управляемые компоненты и приложения, используя модель публикации-подписки. Разработчики говорят, что EventMesh можно определить как «событийно-управляемая плюс бессерверная архитектура».
По их словам создателей, EventMesh предлагает полный набор функций, которые упрощают создание масштабируемых, надежных и гибких событийно-управляемых приложений.
EventMesh состоит из четырех основных компонентов, начиная с промежуточного слоя, который используется для передачи событий между производителями и потребителями событий и поддерживает облачные приложения и микросервисы.
Второй компонент — это Java SDK, который в настоящее время поддерживает протоколы HTTP и TCP. Есть уровень API, основанный на OpenMessaging API и плагине SPI, который может быть реализован популярными EventStore, такими как IMDG, Messaging Engine и OSS. Последний компонент — это API коннектора RocketMQ, который можно использовать для публикации событий или подписки на события.
EventMesh построен на основе спецификации CloudEvents, поэтому совместим с другими облачными системами и приложениями. Он также совместим с широким спектром систем обмена сообщениями и хранилищ данных, что обеспечивает интеграцию с существующими системами промежуточного ПО.
Бессерверный механизм рабочих процессов поддерживает масштабируемые, управляемые событиями приложения со сложной оркестровкой, а его возможности фильтрации и преобразования позволяют разработчикам выборочно направлять и преобразовывать события на основе их содержания и метаданных.
EventMesh поддерживает ряд языков программирования и фреймворков, а также обеспечивает бесперебойную доставку событий между несколькими развертываниями EventMesh, то есть распределенные системы могут охватывать несколько центров обработки данных и облачных провайдеров. Он может использоваться с рядом продуктов для уровня хранения данных, включая Apache RocketMQ, Apache Kafka, Apache Pulsar, RabbitMQ, Redis, Pravega и RDMS с использованием JDBC.