June 11, 2019

Microservices: what they are, why we use them and why it matters

Processing and delivering loans at speed takes a responsive, dynamic infrastructure; especially for a business that’s expanding as rapidly as we are at LendInvest. Microservices give us the ability to scale with amazing efficiency: our product team break down why we take this approach to software development.

What are microservices?

LendInvest’s marketplace operates on microservice based architecture. This means that our technology is made up of many small, specialist software components each designed to do one specific task very well.

Operating this way allows us to constantly design, build and upgrade our technology elements independently of each other. This ensures the integrity of our service whilst vastly increasing our speed of delivery, allowing us to create better products for our customers.

“What’s really cool about microservices is that the services are independent of each other, which makes them independently deployable and testable,” explains Meenakshi Choudhary, our Lead QA Engineer. “This makes the software delivery process very flexible, agile and faster than any monolithic architecture.”

Having many little services running our business logic leads to smaller codebases, so picking up a new task, and performing maintenance is simpler. This single codebase is far easier to understand, adapt and work with than a large one.

But what are the main benefits of using this infrastructure over one large, monolithic system?

Eliminating long-term commitment to technologies

In using microservices we are free to continuously choose the right technology for the right job, and more importantly, review the competency of each service regularly. Because the services are isolated, each individual microservice can be written in the language we think works best for its purpose. This also enables us to remain flexible when choosing the best fitting database management system.

Fault isolation

When something goes wrong, the consequences are limited to the scope of the failing microservice. In other words, if one microservice crashes, the others will continue to work whilst the problematic service is fixed. This feature is vital when it comes to business continuity, and ensuring the customer experience is preserved. Using an online shop as an example: if your search service fails, you can still pay for what you have already put in your basket.

Scalability

New components can be added to microservice based architecture very easily. It is also possible to scale only the required microservices in response to an increase in traffic, (here technologies like Kubernates come in handy). If one microservice developed a bottleneck, we can easily run multiple copies of it because it shares no dependencies with other services and well written microservices can run multiple instances of themselves at once.

Ability to create autonomy between teams

As a business with a variety of customer touch points, and services for a wide range of both borrowers and investors, each team focussing on a specific business area should be able to more easily make decisions and make technical changes than those attempting to carry out development on a large monolithic system.

 

Interested in joining our growing product team? Check out what roles we have available here.