Erlang

What's new in MongooseIM 4.0 - The friendly Mongoose

by Jan Cieśla

Hello from the team at MongooseIM

It’s been busy four months. As most of us were locked in our homes, we decided to put it to use and prepare a really special release. We introduced a new configuration format, structured logging and many new features and extensions that add up to the product we are proud to share with you. MongooseIM has always empowered users to create a customised, owned chat application without the struggle of building one from scratch, now we’ve made these amazing features even more accessible and easy to use.

Friendly to developers with TOML configuration

We want everyone to be able to benefit from MongooseIM, and so it was a rude awakening to hear the configuration described as ‘the trenches of the Somme’ by one of our users. Given we love Erlang, we hadn’t considered that its configuration might be a barrier for some developers. Once we read the feedback we knew that had to change. In the release of 4.0 we are introducing a new configuration format. For that task we’ve decided to go with TOML. Thanks to its merits we managed to get rid of most of the nested lists and tuples that sometimes were followed by a comma and at other times by a dot. We have simplified the syntax and disassembled the trenches while keeping the required configuration capabilities.
If you want to have a closer look at the new configuration format, please have a look at the Configuration section in our docs.

Friendly to Kubernetes with Helm Charts

We all like to have the installation procedure as simple as installing a package. So we’ve made it possible to install MongooseIM and MongoosePush on Kubernetes through the Helm Chart.
You can find the Helm Charts of our organisation at the link below:
https://artifacthub.io/packages/search?page=1&org=mongoose

Friendly to DevOps with structured logging

In MongooseIM 4.0 we’re introducing structured logs. This can help to have more precise and clearer structure when we query events that are logged. This is a tool you may need not often, but when you do need it, you’ll be so glad you have it because it makes it significantly easier to find exactly what you’re looking for.
If you are not yet familiar with the new OTP logger and structured logs we recommend having a look at this https://ferd.ca/erlang-otp-21-s-new-logger.html blogpost.

Friendly for users with video and voice calling

With the new release, we added the implementation for XEP-0215: External Service Discovery which assists in discovering information about services external to the XMPP network. The main use-case is to help discover STUN/TURN servers to allow for negotiating media exchanges.
So if you want to have a video/voice call using MongooseIM and Conversations now you can. You can use MongooseICE as a STUN/TURN relay, configure MongooseIM with mod_extdisco enabled and start having video calls between connected users.
For more details on how to use and setup mod_extdisco and our STUN/TURN server stay tuned to our future blog posts and in the meantime, please see our documentation page: https://mongooseim.readthedocs.io/en/latest/modules/mod_extdisco/

Friendly for everyone with improvements to MongoosePush

We’ve released a new MongoosePush. In the 2.1 release you will find:
OpenAPI Specs
Phoenix as the Web Framework
Structured Logs, logfmt and JSON formatters
Metrics: Exometer to Telemetry, Multidimensional metrics
Many improvements in the testing pipeline

For more information on the new MongoosePush, please have a look at the release notes https://github.com/esl/MongoosePush/releases/tag/2.1.0

Friendly for managers with AMOC 2.1 Load testing

We released AMOC 2.1. This release focuses on the REST API, which is now powered by OpenAPI Specifications generated by openapi-generator. We’ve also significantly reworked the RestAPI so you can upload files with simple put requests. With the newly introduced documentation API for scenarios you can now check what the scenario is about before running it. Finally, the execution API was updated and now you have full control of options such as starting, stopping scenario, adding, removing users. This makes load testing even easier so you can demonstrate the value of MongooseIM to your management team.

Let’s be friends!

So if you ever considered MongooseIM for your product or a project but you didn’t choose it for some reason, it’s time to give it a try. It’s the most robust, scalable and now easiest to configure Instant Messaging solution available on the market. Learn more about how MongooseIM stacks up against the competitors in terms of key considerations like costs and features in our complete guide to choosing a messaging app. Or, explore the MongooseIM page.

One last word from your friends at MongooseIM

load testing diagram

After working hard to get the new release live, we wanted to show off a little creative spirit. Here’s the MongooseIM’s team summary of MongooseIM 4.0 as inspired by the theme song to Friends! https://www.youtube.com/watch?v=sLisEEwYZvw

So no one told your MongooseIM 4.0 was gonna be this way
When your app’s won’t scale, you’re broke
Your XMPP life’s DOA
It’s like you’re always stuck with a single node
When it hasn’t been your day, your week, your month
Or even your year, but
MongooseIM will be there for you
(When the rain of messages starts to pour)
MongooseIM will be there for you
(When you like to configure with TOML)
MongooseIM will be there for you
(‘Cause structured logs are for people too)

You may also like:

Our complete guide to Instant Messaging

MongooseIM - page

How to add messaging - webinar

Testing the scalability of MongooseIM - blog

How we can add value to your product with chat - blog

Code Mesh V alternative tech conference 5-6 November

Go back to the blog

×

Thank you for your message

We sent you a confirmation email to let you know we received it. One of our colleagues will get in touch shortly.
Have a nice day!