The OpenSooq team is very careful to provide our users with special features that help them have a better experience. However, we believe in innovation. Changing times means changing how we work. We encourage innovation at all levels of our work to help us deliver more features for our users.
OpenSooq launched a new feature, Chat. It’s a robust tool that gives users the power to communicate real time with buyers to sell or buy faster. The days leading up to its launch were exhausting. We went into a 43-day “lockdown.”
“Lockdown” is an OpenSooq tradition that changes the pace and practice of work during the run-up to a product launch. The OpenSooq CEO called an impromptu meeting that turned into a declaration of war. Our CEO declared a state of “lockdown” that encouraged employees to work crazy hours to release the chat service.
All of the tech team had zero knowledge of WebSocket and chat features, and this is the first challenge we faced. But this was nothing compared to the question “How to create a high-performing chat application that functions as a microservice?” especially considering that we couldn’t predict how we would get messages from this feature.
Expect the best, plan for the worst, and prepare to be surprised. This was our base to start from. We did research. But unfortunately, there was not enough data to help us to imagine the complete architecture. And there were missing parts. But that’s no reason to give up. We put together a comprehensive architectural plan and started drawing the features on our IDE.
Actually, everything was working well until we collided with reality. Yes, the reality was hard for us. The architecture was not scalable although we tested it well. But when you deal with huge traffic and big data, the formula will be changed. All of us were frustrated and felt that we failed. But we did not give up, knowing that the deadline was only a few days away and that we must fight failure. Our inner voice was screaming at us to take chances, chase failure, and start fighting.
We reviewed our architecture, learned from our mistakes, and prepared to win a fight. We made decisions. We shut down other meetings. The team got together and had a massive four-hour meeting where nobody was allowed to leave, where we figured out exactly what we were going to tackle. We filled two whiteboards full of technical challenges, and eventually, we won the fight.
I don’t forget the team feelings of being a winner, and one of the lessons that I’ve learned is “A winner never stops trying.” We have released the chat, and we are setting new records every day. We have exceeded the expectations of the product team. And the great thing is that we did not change one line of architecture, which has been running since March 2016, while the growth of data and traffic has been exponential.