BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News EventMesh Serverless Platform Promoted to Apache Top-Level Project

EventMesh Serverless Platform Promoted to Apache Top-Level Project

Bookmarks

Apache EventMesh is a fully serverless platform used to build distributed event-driven applications and last month has graduated to Top-Level Project of Apache Software Foundation.

EventMesh uses a publish/subscribe pattern to enable serverless, event-driven capabilities for a wide variety of components and applications. An event mesh is a network of event brokers that enable the distribution of event information across applications, cloud services, and devices within an enterprise. Following the principles of event-driven architecture, events are used as the primary means of communication between various components rather than traditional request/response interactions. An event mesh enables an event-driven exchange of information between microservices and applications.

The main features of EventMesh are: Compatibility with other cloud-based systems and applications since it is built on CloudEvents specification; Extensible middleware by connectors that is compatible with a wide range of messaging systems and data stores such as Apache RocketMQ, Apache Kafka, Apache Pulsar, RabbitMQ, Redis; Filtering and transformation capabilities that enable users to selectively route and transform events based on their content and metadata; Serverless workflow engine that enables users to build scalable, event-driven applications with complex orchestration.

It also provides an SDK for Java to integrate EventMesh in a Java application. The SDK supports sending and receiving synchronous, asynchronous, and broadcast messages in TCP, HTTP, and gRPC protocols. The SDK implements EventMesh Message, CloudEvents, and OpenMessaging formats. Support for Rust language was also added since the release of version 1.7.0.

The image below shows the EventMesh event orchestration:

EventMesh uses the Serverless Workflow DSL to describe its workflow. CNCF Serverless Workflows defines a vendor-neutral, open-source, fully community-driven ecosystem for defining and executing DSL-based workflows targeting the serverless technology domain. Based on that specification, a workflow consists of a set of states used to describe control flow logic and is described using the AsyncAPI specification (similar to the OpenAPI specification used for RESTful applications).

The code snippet below represents an example of serverless workflow:

asyncapi: 2.2.0
info:
  title: Order Service
  version: '0.1.0'
channels:
  order/inbound:
    publish:
      operationId: sendOrder
      message:
        $ref : '#/components/Order'
  order/outbound:
    subscribe:
      operationId: processedOrder
      message:
        $ref : '#/components/Order'

Apache EventMesh was initially developed at China’s WeBank and first open-sourced on GitHub in September 2019. It was the first Chinese fintech-founded project to make it into the Apache Incubator.

The Apache Software Foundation, founded in 1999, is the world's largest open-source foundation, stewarding 227M+ lines of code and providing more than $22B+ worth of software at 100% no cost.

About the Author

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Feedback

    by Sergey Shishkin,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The code snippet in the article is an example of an AsyncAPI service, not a Serverless Workflow DSL. And "a workflow [...] is described using the AsyncAPI specification" is a false statement. I wonder if the author actually had any first-hand experience with EventMesh or just saw it pop up on social media.

    I also could not understand what problem does EventMesh solve despite rereading the article a few times. It just seems like an AI- (or PR-) generated mumbo-jumbo. At least I know it's developed by a Chinese fintech and now wonder how that is of any importance whatsoever.

  • Re: Feedback

    by Daniel Bryant,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi Sergey,

    Many thanks for your comment. I'm not an expert with this specific tech, but a 30-second Google shows me that the code snippet is from the EventMesh docs: eventmesh.apache.org/docs/design-document/workflow

    Ideally, we should have linked the source above, but it appears to me as a legit example. Do you still believe otherwise?

    The project's purpose is also clear to me, and it reminds me of ESBs and related middleware from my Enterprise Java days. The primary goal is to connect system components using a loosely coupled, event-driven approach. What exactly did you find confusing about the article?

    We regularly share the provenance of technology, as our readers find this interesting. The callout to WeBank donating this project is just as beneficial as when we call out project origins with CNCF technologies, e.g. www.infoq.com/news/2021/02/opa-cncf-graduation/

    Let me know your thoughts. I'm happy to chat via this thread or feel free to reach out via Twitter DMs (@danielbryantuk)

    Best wishes,

    Daniel
    InfoQ news manager

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT