mesg-foundation / engine

Build apps or autonomous workflows with reusable, shareable integrations connecting any service, app, blockchain or decentralized network.
https://mesg.com/
Apache License 2.0
130 stars 13 forks source link
blockchain docker event-driven framework microservice services

MESG Engine

Website - Docs - Forum - Chat - Blog

GoDoc CircleCI Docker Pulls Maintainability codecov

MESG is a platform for the creation of efficient and easy-to-maintain applications that connect any and all technologies.

MESG Engine is a communication and connection layer which manages the interaction of all connected services and applications so they can remain lightweight, yet feature packed.

To build an application, follow the Quick Start Guide

If you'd like to build Services and share them with the community, go to the Services section.

To help us build and maintain MESG Engine, refer to the Contribute section below.

Contents

Quick Start Guide

This step-by-step guide will show you how to create an application that gets the ERC20 token balance of an Ethereum account every 10 seconds and send it to a Webhook.

Check out the Quick Start

Services

Services are small and reusable pieces of code that, when grouped together, allow developers to build incredible applications with ease.

You can develop a service for absolutely anything you want, as long as it can run inside Docker. Check the documentation to create your own services.

Services implement two types of communication: executing tasks and submitting events.

Executing Tasks

Tasks have input parameters and outputs with varying data. A task is like a function with inputs and outputs.

Let's take an example of a task that takes 2 number and add them (a sum):

The task accepts as inputs: a and b.

The task will return the following output: { result: xx }.

Where result = a + b

Check out the documentation for more information on how to create tasks.

Submitting Events

Services can also submit events to MESG Engine. They allow two-way communication with MESG Engine and Applications.

Let's say the service is an HTTP web server. An event could be submitted when the web server receives a request with the request's payload as the event's data. The service could also submit a specific event for every route of your HTTP API.

For more info on how to create your events, visit the Emit an Event page.

Architecture

MESG Architecture

Community

You can find us and other MESG users on the forum. Feel free to check existing posts and help other users of MESG.

Also, be sure to check out the blog to stay up-to-date with our articles.

Contribute

Contributions are more than welcome. For more details on how to contribute, please check out the contribution guide.

If you have any questions, please reach out to us directly on Discord.