By Eldon Richards, Chief Technology Officer at Solifi
In today’s rapidly evolving business landscape, organizations face a multitude of challenges when it comes to addressing agility, scaling 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 framework 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) 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 independently. When designed well, each of these services can be maintained and scaled independently 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, which 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 microservices. Low-code architectures are meant to provide extremely agile change by taking the vendor out of the process. While this can sometimes work, they often lack the ability to scale and remain agile as they become more complex over time. Low-code applications provide a means for customers to essentially develop their own custom applications 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 their own 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 a variety of integration points with the customer’s ecosystem.
Microservice architectures go hand-in-hand with Software-as-a-Service (SaaS). They make it possible to take advantage of the extreme scalability of cloud hosting. 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 all 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.
Choosing the right partner
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, stay ahead of the competition, and offer their customers a tailored solution that fully meets their expectations and needs.
It will come as no surprise then that Solifi has taken the microservice approach. We 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 then 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.