Using information found by Narcisa Zysman and Claudia Söhlemann we take a closer look at microservices architecture and learn about why it is being widely used and what are its limitations.
Uses:
Better fault isolation: If one microservice fails, others will likely continue to work.
Optimized scaling decisions: Scaling decisions can be made at a more granular level, allowing more efficient system optimization and organization.
Localized complexity: Owners of a service need to understand the complexity of only what is within their service, not the whole system.
Increased business agility: Failure of a microservice affects only that service not the whole application so enterprises can afford to experiment with new processes, algorithms, and business logic.
Increased developer productivity: It’s easier to understand a small, isolated piece of functionality than an entire monolithic application.
Better alignment of developers with business users: Microservice architectures are organized around business capabilities, developers can more easily understand the user perspective and create microservices that are better aligned with the business.
Future-proofed applications: Microservice architectures makes it easier to replace or upgrade the individual services without impacting the whole application.
Smaller and more agile development teams: Teams involve fewer people, and they’re more focused on the part of microservices they work on.
Limitations:
Can be complex: While individual microservices may be easier to understand and manage, the application may have significantly more components involved, which have more interconnections. These interdependencies increase the application’s overall complexity.
Requires careful planning: Because all the microservices in an application must work together, developers and software architects must carefully plan out how to break down all the functionality and dependencies. There can be data challenges when starting an application from scratch or modifying a legacy monolithic application. Also, multiple iterations can be required until it works.
Proper sizing is critical and difficult: If microservices are too big, might have all the drawbacks of monoliths. If it is too small, the complexity of the individual services is moved into the dependency maps, which makes the application harder to understand and manage at scale.
Third-party microservices: Third-party services can change their APIs (or dependencies) at any time and in ways that may break your application.
Downstream dependencies: The application must be able to survive failures of individual microservices, yet downstream problems often happen. Building fault-tolerance into an application built with microservices can be more complex than in a monolithic system.
Security Risks: Microservices growth in popularity, may increase an applications’ vulnerability to hackers and cybercriminals. Because microservice architectures allows the use of multiple operating systems and languages when building an application, there’s the possibility of having more targets for malicious intrusions. We are also unaware of the vulnerabilities of third-party services being used.
When complexity increases, we make sure it is warranted and well understood. Regularly examining interconnected set of microservices so the application does not crash. Learning about limitations helps us come up with such solutions which we can apply in our future work and when we work on LibreFoodPantry system.
Source:
https://www.castsoftware.com/blog/microservices-architecture-a-good-or-bad-approach
https://kruschecompany.com/microservice-architecture-for-future-ready-products/#Microservices_cons
From the blog CS@worcester – Towards Tech by murtazan and used with permission of the author. All other rights reserved by the author.

, which launched this past June, is a new offering that creates a set of spaces where content related to certain languages, products, or services is grouped together on Stack Overflow. These spaces make it easier for users to discover and share knowledge around their favorite technologies. With the launch of its Collective, GitLab will continue to build on the collaboration that already exists with the community of developers and contributors using its platform. “Community is at the core of GitLab’s mission. With more than 1 million active license users and a contributor community of more than 2,400 people, we have a strong community aligned with our mission – to create a world where everyone can contribute,” said Brendan O’Leary, Senior Developer Evangelist at GitLab. “GitLab’s Collective on Stack Overflow aligns with our mission. This new space will help us to expand our open-source collaboration so contributors and developers can share and learn about version control, CI/CD, DevSecOps, and all-remote workflows. We believe the GitLab Collective will be a place where we can discover feedback and create opportunities for the GitLab community to contribute to Stack Overflow’s community.”