We’ve been very busy for the past two months working on two new major features of the Engine: Orchestrator and Network. That’s why this product update group together MESG Engine v0.13, v0.14, and v0.15 + CLI v1.3 and v1.4! Check out what's new:
Release of MESG Orchestrator to build apps using processes
We officially released the first public version of Orchestrator 🍾🎊
MESG Orchestrator is an event-driven task-orchestration system that manages the connections between the events and tasks of services by following the steps described by processes.
It lets you build and run complex applications by describing their business logic, then the Engine executes them for you.
Processes are an evolution of Applications, as they are managed by the Engine, and will be distributed on the upcoming decentralized network.
You can read more about Orchestrator and Processes in the documentation.
Process super quick start
Create a new file process.yml
on your computer and copy the following content:
key: erc20-notification
steps:
- type: trigger
instance:
src: https://github.com/mesg-foundation/service-ethereum-erc20
env:
- PROVIDER_ENDPOINT=$(env:PROVIDER_ENDPOINT)
eventKey: transfer
- type: task
instance:
src: ./convert
taskKey: address
- type: filter
conditions:
contractAddress: "0x420167d87d35c3a249b32ef6225872fbd9ab85d2"
- type: task
instance:
src: ./convert
taskKey: email
- type: task
instance:
src: https://github.com/mesg-foundation/service-email-sendgrid
env:
- SENDGRID_API_KEY=$(env:SENDGRID_API_KEY)
taskKey: send
Then, execute the following command to compile, start and log the activity of the process:
mesg-cli process:dev PATH_TO_THE_PROCESS_FILE --env PROVIDER_ENDPOINT=YOUR_INFURA_URL --env SENDGRID_API_KEY=YOUR_SENDGRID_API_KEY
🎊 Congrats! You created your first MESG Process! 🎊
Beta version of the decentralized network
We are working hard on the decentralized network and are making good progress! The services are now decentralized by running on Tendermint with ownership management features!
In the next version of the Engine, we plan to release our first public testnet!
To test it before the public release, clone the engine repo and run the dev
script with the flag --validator
and --genesis-account
:
git clone https://github.com/mesg-foundation/engine
cd engine
./dev --validator --genesis_validator
After the Engine is started, you should see a new block every 10 seconds!
Switch to gogo protobuf
The gRPC API is now using gogo protobuf to compile the proto file to Go. The main reason is the customization of the proto that gogo proto offers over the official Google version.
This has the side effect of breaking the reflection of the gRPC API. You now need to explicitly pass the proto files when using a gRPC client.
You may also need to download gogo.proto
and save it locally in ./gogo/protobuf/gogoproto
to allow your gRPC client to access the new features that gogo offers.
Minor versioning
The CLI is now checking for the latest matching minor version of the Engine when running:
mesg-cli daemon:start
Of course you can disable this system by using the --no-pull
flag:
mesg-cli daemon:start --no-pull
Changelogs
Follow the links below to see the complete changelogs:
To update the Engine and the CLI, follow the installation process on the documentation.