When we think about the process of developing an MVP, what we have in mind is to create great value in a short period of time, avoiding complexities and solving problems in the simplest way possible.

Then, on a beautiful sunny summer day, the Project Manager comes up and says:

“We need to create an MVP for a chat system in just one month!”

It’s chaos! It seems to be something very complex for only a month of work. Some questions begin to emerge:

What are the requirements?

How to estimate the effort?

How to build a simple chat app that aggregates value?

After brainstorming a bit, developers start to think about various open-source alternatives, like jsxc and pyxmpp, that could fit the business model and the project’s needs. In this case, the alternatives found didn’t meet the application requirements perfectly, because the team would have to spend a lot of time learning a new library whose features would mostly not be needed for our MVP.

After extensive research and no solution, a voice from heaven says:

“Why not create your own architecture?”

It’s just an MVP! We need to test the project before we think about scalability, right? It was then that we decided to implement this architecture with WebSockets. Here’s the breakdown of what we came up with.