VerneMQ plugins of tomorrow

vernemq_grafana

With the initial release of VerneMQ we had great feedback from many of you interested in IoT technologies. But we also heard some concerns about integrating an Erlang based product into a rather traditional infrastructure.

Why would that be a problem? Do you need to know Erlang to run VerneMQ? No! VerneMQ-as-a-product should provide blackbox MQTT functionality. You don't configure and administer it with Erlang commands or something.

But...plugins!

Okay, if you'd like to write plugins for VerneMQ, right now, they need to be done in Erlang or Elixir.

By the way, let us quickly mention that we can develop plugins for you. It's the second best way to support us commercially, if you don't need our support subscriptions and SLA's. We're easy to approach, fun to work with, we're on the VerneMQ mission. Support the VerneMQ mission! :)

Okay (calm down, mission engineer), let's say you need a custom authentication and authorization scheme or a different message archive for analytics. You're starting discussions with your software engineering team about the efforts involved in learning Erlang. That's certainly an investment.

We've been thinking about ways to lower that investment and risk for you.

What if you could develop plugins in one of the most used, simplest, safely embedded scripting languages there is, Lua!?

Well, you can!

You still have to write code, but we're sure you'll feel right at home. Let's look at a simple authentication example that checks if a client is allowed to connect to the broker.

We also allow your scripts to talk to different databases. Currently we have basic support for MySQL, PostgreSQL, MongoDB, Redis, and ETS, the Erlang local KV store. The following gist shows an example that uses MongoDB for fetching user credentials.

Adding support for other databases can be done quite easily. And of course, accessing a database isn't the only functionality the Lua plugin can be used for (and all VerneMQ hooks are supported). It's unlimited, but also sandboxed and secured, so that it can't affect the Erlang VM.

The required add-on won't come with the standard VerneMQ distribution, but has to be loaded as a separate plugin. We're not yet 100% sure this should be a premium only plugin, that is part of our support subscriptions.

If you think this is a killer feature, that must be opensourced... well, help us make up our minds! :)

Have fun, go travel the world, learn Erl...err Lua!

The VerneMQ Mission Engineers