Nanoservices: Make Your Code More Maintainable by Going More Granular
What's next? Picoservices?
While not a panacea, microservices have grown in popularity and are nowadays akin to a golden standard when it comes to building fast, scalable, multi-team-driven applications.
But if you’ve done microservices for any length of time, you might have found yourself wondering why what you’re building looks an awful lot like a stack of smaller monoliths!
Even as we design our system properly (and assign proper logical boundaries to each microservice), an individual microservice may well grow in complexity to the point where it doesn’t feel like working with it is any easier than working with a monolith.
Much can be said about such a scenario. The usual suspects can, of course, help: clean code, good tests, and an incremental architecture. We should always be willing to redraw and redesign the boundaries of a service if it seems like things are getting out of hand!
Nanoservices are another tool at our disposal that can bring some sanity and increased quality to our microservices.
Let’s take a look at what nanoservices are, what their benefits are, and how we can start implementing them.