In today’s rapidly evolving business landscape, organizations face a multitude of challenges when it comes to addressing threats and opportunities with agility, scaling their operations, adopting new technologies, and delivering value to customers efficiently. Many software architectures pose obstacles to business growth and agility. In this article, I’ll explain some of the pitfalls that you should watch for when evaluating your technology partners’ software architecture.
The original architecture is the monolith. Characterized by tightly coupled components that are compiled and deployed together, the monolithic architecture is considered a closed architecture that is expensive to scale and modify. Monolithic architecture has been used for decades, dating back to some of the earliest commercial software. While products with this architecture are relatively simple to install and operate, their architecture often hinders scalability and agile delivery of new functionality. In an era when most commercial software was hosted by customers in their own data centers (on premise installations), monoliths were common because they required less administration from the IT team. However, they have limited options for scaling and use their hardware inefficiently, requiring more IT infrastructure to run at scale. As they grow in complexity, they require exponentially higher amounts of development and testing to make changes, which impedes agility. Monoliths typically have limited integration options. While they may offer APIs or file-based integration points, their tightly-coupled nature often leads to difficulty in providing clean interfaces for external integration. These issues often yield high hosting costs, delayed product releases, limited integration into customers’ ecosystems and missed opportunities to capitalize on emerging market demands.
Other popular architectures that have been used for commercial software include layered (or tiered) architectures and service-oriented architectures (SOA). These architectures became popular in the 1990s and 2000s. Compared to monoliths, layered architectures improve scaling and code maintenance. They usually separate into 2-3 tiers, and each tier is usually hosted on separate servers, which allows IT teams to optimize each server specifically for its job. Some layered architectures support horizontal scaling, allowing the IT team to add servers to share the load for any of the application’s tiers. Service-oriented architectures take this a step further and allow specific functions or services to run independent of each other. When designed well, each of these services can be maintained and scaled independent of the others, which improves the system’s overall agility and scalability. The cost of getting these benefits comes with the added complexity for the IT team, who now has more components and servers to maintain. While these architectures reduce the impediments for customers to scale and adapt, the improvements are small compared to more modern architectures.
Two architectures that have become popular in more recent years are low-code and microservice architectures. Low-code architectures are meant to provide extremely agile change by taking the vendor out of the process. While this can sometimes work, they sometimes lack the ability to scale and to remain agile as they become more complex over time. Low-code applications provide means for customers to essentially develop their own custom application on the vendor’s platform without using traditional software code. Instead, they use drag-and-drop visual tools, rules and simple domain-specific languages to customize the platform for the customer’s needs. This usually allows the customer to quickly adapt the product to meet changing needs. However, it is common for these changes to have a negative impact on scalability and performance because low-code tools don’t offer the same level of support for managing these more technical features of a product. Also, complex configurations on these platforms tend to become difficult to maintain. At a basic level, ‘low-code’ is still code and these platforms tend to lack the sophisticated capabilities needed to maintain many layers of dependencies and changes that occur during the life of the product. For some, difficulties in maintenance can even show up during the system’s initial implementation.
Many of the challenges noted above with monolithic, layered, SOA and low-code architectures can be overcome with a well-designed microservice architecture. A well-planned microservices architecture means that the technology provider develops and tailors independently deployable microservices to serve specific business capabilities, promoting modularity and decoupling between components. This modular approach facilitates the development and integration of new technologies and functionality, as each microservice can be developed, tested, and deployed independently. Microservice architectures are inherently open because each service communicates with the others through APIs, and these APIs can provide integration points with the customer’s ecosystem.
Microservice architectures go hand-in-hand with software-as-a-service (SaaS) in the cloud. They make it possible to take advantage of the extreme scalability of the cloud. Usually, each service is set up to ‘autoscale’ (automatically scale horizontally with the load placed on it). When managed in the cloud by a SaaS provider, the deployment, monitoring, scaling and upgrading of microservices can be automated. This allows the partner to seamlessly deploy updates without taking the system down. This approach is used by many of the technology platforms that we all use on a regular basis, including search engines like Google, media platforms like Spotify and Netflix and social media platforms like LinkedIn and Facebook. These platforms are continuously upgraded and improved, and we almost never experience downtime or other negative consequences.
Through a reliable and innovation-minded technology partner, secured finance providers will be able to capitalize on the latest architectures, tools, frameworks, and technologies for specific services without being constrained by the limitations of the monolith and other dated architectures. This technical flexibility enables secured finance lenders to capitalize on emerging technologies and stay ahead of the competition, whilst offering their customers tailored solutions which fully meet their requirements and needs.
At Solifi, we have taken the microservice approach. We have found that this architecture allows us to provide the agility, scalability, quality and efficiency that our customers require. We have the added benefit of improving our internal development scalability and quality, which we pass on through improved responsiveness and quality to our customers. With the loosely-coupled, independent nature of our services, we can make changes and deploy them safely in minutes and hours instead of weeks and months. The quick response time to market demands positions Solifi as an adaptive and customer-centric organization.
When you evaluate partners for your next technology upgrade, remember to look beyond the functionality provided by the products you evaluate and also consider the ability of the software and partner to enable your company’s growth and agility.
Eldon Richards
Eldon Richards joined Solifi’s Executive Team as Chief Technology Officer at the start of 2020, bringing more than 20 years of enterprise software product development and global technology leadership. In this role, Eldon leads the development of the company’s product portfolio, including Solifi’s Open Finance Platform.
Eldon joined Solifi from Recondo Technology, an enterprise SaaS platform providing revenue cycle management for healthcare organizations. As Recondo’s CTO, Eldon was responsible for all aspects of their SaaS technology platform including integration of advanced technologies like machine learning (ML) and natural language processing (NLP). Eldon was a key contributor to the company’s success which led to the acquisition by Waystar. Prior to Recondo, Eldon held executive technology leadership positions at PatientPoint, Optum, and United Health Group.
Eldon holds an undergraduate degree in computer science from the University of Utah, MBA from the University of Minnesota Carlson School of Management, as well as graduate level certificates from Stanford University, Washington University in St. Louis and is a Six Sigma Green Belt.