You can’t solve many problems solely through team collaboration, observation, or strict code reviews. To address many issues fundamentally, you need to identify the actual root cause. Then, you must find a way to solve that problem permanently and fundamentally.
I developed a communication module to handle the entire communications throughout the organization, which included:
👉 Managing different types of layouts
👉 Managing different types of templates
👉 Managing different types of events like transactional and promotional
👉 Creating different types of campaigns like email, SMS, and Push Notifications
👉 Scheduling different types of campaigns like email, SMS or Push Notifications
👉 Tracking mechanism for all the scheduled campaigns
👉 Different dashboards for SMS, push notifications, and emails, such as sent, opened, clicked, or invalid etc.
Initially, this module was developed with only the core product in mind. However, as the organization grew, we started developing different ecosystem products to enable the core products. Then I realized that either I needed to replicate this entire code base for each product or need to deploy it separately as a microservice to serve all the products because communication was a common practice used by each product within the organization.
So, I took the initiative and deployed that service as a microservice. Additionally, I realized that another microservice, OTP, was also used by 6-7 products. If any functionality is used by various products or services, I believe it needs a separate microservice so that the functionality is not impacted by other modules. OTP and communications are both critical and important services in any organization.
If we use these services within the same code base, there are chances that you will suffer every time whenever new changes are deployed on the server, regardless of whether your team touched anything in these modules or not. There is a 99% chances it will impact the functionality of these modules.
If you are suffering from these types of issues regularly, it means you don’t need to handle them by observing, team collaboration, or stricter code reviews alone. You need to develop and deploy a separate microservice. This way, you can permanently get rid of these types of issues and you can solve the problem fundamentally.
Does it make sense?
If this sounds good to you and you need any support to develop microservices or migrate your module into microservices, I can help you.
Book a FREE discovery call to discuss how we can solve a problem or DM me.
