Home kellton

Main navigation

  • Services
    • Digital Business Services
      • AI & ML
        • Utilitarian AI
        • Predictive Analytics
        • Generative AI
        • Machine Learning
        • Data Science
        • RPA
      • Digital Experience
        • Product Strategy & Consulting
        • Product Design
        • Product Management
      • Product Engineering
        • Digital Application Development
        • Mobile Engineering
        • IoT & Wearables Solutions
        • Quality Engineering
      • Data & Analytics
        • Data Consulting
        • Data Engineering
        • Data Migration & Modernization
        • Analytics Services
        • Integration & API
      • Cloud Engineering
        • Cloud Consulting
        • Cloud Migration
        • Cloud Managed Services
        • DevSecOps
      • NextGen Services
        • Blockchain
        • Web3
        • Metaverse
        • Digital Signage Solutions
        • Spatial Computing
    • SAP
      • SAP Services
        • S/4HANA Implementations
        • SAP AMS Support
        • SAP Automation
        • SAP Security & GRC
        • SAP Value Added Solutions
        • Other SAP Implementations
      • View All Services
  • Platforms & Products
    • Audit.io
    • Kellton4Health
    • Kellton4NFT
    • Kellton4Commerce
    • KLGAME
    • tHRive
    • Optima
    • Our Data Accelerators
      • Data DigitalTwin
      • SmartScope
      • DataLift
      • SchemaLift
      • Reconcile360
    • View All Products
  • Industries
    • Fintech, Banking, Financial Services & Insurance
    • Retail, E-Commerce & Distribution
    • Pharma, Healthcare & Life Sciences
    • Non-Profit, Government & Education
    • Travel, Logistics & Hospitality
    • HiTech, SaaS, ISV & Communications
    • Manufacturing, Automotive & Chemicals
    • Oil,Gas & Mining
    • Energy & Utilities
    • View All Industries
  • Insights
    • Blogs
    • Brochures
    • Success Stories
    • News / Announcements
    • Webinars
    • White Papers
  • Careers
    • Life At Kellton
    • Jobs
  • About
    • About Us
    • Our Partners
    • Our Leadership
    • Testimonials
    • Analyst Recognitions
    • Investors
    • Privacy-Policy
    • Contact Us
    • Our Delivery Centers
      • India Delivery Center
      • Europe Delivery Center
Search
  1. Home
  2. All Insights
  3. Blogs

The Mystery of Microservices

Product Engineering
Integration & API
October 10 , 2017
Posted By:
Sushil Kumar Tripathi
linkedin
The Mystery of Microservices

Other recent blogs

Generative AI companies
ROI of Generative AI: Measuring its impact and value for your business
April 15 , 2025
Data migration cost
Breaking down the cost of Data Migration: Is it worth in 2025
April 10 , 2025
Data Migration trends 2025
Revealing top Data Migration trends and predictions to watch
April 01 , 2025

Let's talk

Reach out, we'd love to hear from you!

Image CAPTCHA
Get new captcha!
Enter the characters shown in the image.
Mystery

 

We have been hearing the term “microservices” for the last few years and it has become a buzzword in the field of software architecture design. If you ask software architects that what type of architecture they are working on, most of them will say microservices architecture. The word microservices has become a status symbol for many of the architects. Every architect wants to design their application using microservices without even assessing whether they should use microservices or not. Since microservices architecture is the latest trend, the technology heads and CTOs also want their applications designed using microservices.

 

Microservices Architecture is broadly termed as a way of designing the software application as a collection of independently deployable services. Though there is no fixed definition of Microservices Architecture but it has characteristics like decentralized control, independently scalable and maintainable, automated deployment, intelligence at the lowest level, easy to enhance. With the advancements in the cloud technologies implementing Microservices has become much easier.

 

Now the big question comes, whether you should go with Microservices or not?

 

The answer is, it depends on multiple factors, out of which Domain Complexity, Usage Volume are two most important factors. If usage volume is high i.e. Internet scale and Domain complexity is less then microservices are highly recommended. Similarly, if usage volume is less i.e. enterprise scale and domain complexity is high, going with Modular Monolithic approach makes more sense. These two cases are very much clear but what about the other two cases where usage volume is low and domain complexity is low or usage volume is high and domain complexity is high? In my opinion, we will give the preference to usage volume and will go for microservices if usage volume is above a certain threshold. If we take the example of Netflix where performance takes precedence over all other factors and microservices is inevitable. If you are building a multi-tenant system, which is an Enterprise application but provides as SaaS, having a mix of microservices and modular monolith makes sense.

 

Another factor that comes in to play is the ability to find out the module/domain boundaries and separating them from each other for loose coupling. Many people ask what should be the size of a microservice in terms of lines of code or effort to be needed to code them or number of tables in the database of a microservice? Once again the answer to this question is also not concrete as it depends on how much you are able to separate the domain models from each other so that they can run as separate services independently. No system can be designed with infinite scalability. You need to follow an evolutionary vision for the architecture, where the system is allowing changes needed in future. For example, you can start with the monolithic modular approach with clearly separated module boundaries, respecting bounded contexts and using domain driven design. After some time when you are able to put all the components in the right place, start converting modules into microservices and once done you can identify certain modules that can be split to more fine-grained microservices. You can follow the single responsibility principle, which says “Gather things together those change for the same reason and separate things that change for different reasons.” Beware to split the system into many microservices as it might increase the chattiness between the application services and hence will introduce latency in the service response. It is always a problem of choosing millions of ants approach VS single elephant approach. I have personally seen some enterprises that followed microservices approach to develop their application and now they are not able to debug why the application is performing poorly. After a thorough audit, it was found that they have implemented excessive chattiness between the APIs and were lacking dependency governance between APIs. Therefore be careful about the granularity of the microservices and finding the right granularity is possible with the evolutionary vision only.

 

Another complaint I hear from enterprises that have created their applications in the microservices style is they are spending a lot of money on cloud infrastructure because of deployment of every microservice on separate instances. Since every microservice needs its own high availability the number of instances required increases accordingly. Now to bring down the cost of infrastructure they started deploying multiple services on one instance, which once again became difficult to manage in terms of monitoring, debugging, and finding bottlenecks. This can be handled using the DevOps practice. It is a fact that economics plays a very big role in development, operation, and maintenance of any application. You need to do your cost-benefit analysis and then decide your approach.

 

This article was published in the October 2017 Elite Issue of CIO Review India Magazine (Pg 134).

Want to know more?

Quantum-proofing your business
Blog
Quantum-proofing your business: A critical security imperative
March 28 , 2025
Minimizing disruption in Product Modernization
Blog
Application Modernization Strategy: Revealing zero-disruption best practices
March 25 , 2025
Adaptive software development guide - Abstract thumbnail image
Blog
A detailed guide on adaptive software development
March 12 , 2025

North America: +1.844.469.8900

Asia: +91.124.469.8900

Europe: +44.203.807.6911

Email: ask@kellton.com

Footer menu right

  • Services
  • Platforms & Products
  • Industries
  • Insights

Footer Menu Left

  • About
  • News
  • Careers
  • Contact
LinkedIn Twitter Youtube
clutch Badge

© 2024 Kellton