Comprobo approached us with a plan to move their existing application to a more scalable, growth-focused architecture. They had also identified some weaknesses in their existing user interface which they wanted to address. We assisted with infrastructure and architecture planning to move to a highly scalable distributed system and took responsibility for design and development of their new user interface, along with the development of new backend software.
Comprobo's business plan is to experience very rapid growth in a short timescale, so being able to deliver at scale is a critical consideration for investors. We helped analyse their existing monolithic solution and draw out elements that can be managed as stand-alone aspects. Working with remote teams and our own developers, API interfaces between these services were then designed, before being assigned to separate teams for development.
In a microservice-based system, each component should be quite simple to develop and test in isolation, so long as their domain of responsibility is very clear. We were lucky to be involved in this project quite early on and that it was a complete rebuild of an existing project so each service's remit was well specified and implementation was smooth.
The client now has a collection of well-tested services and orchestration which can be deployed to any configuration of one or more servers. By leveraging existing configuration management and deployment solutions the system can be effectively scaled as need dictates, adding servers at busier times, whilst cost saving during quieter periods.
In the existing application, the user interface was heavily tied to the backend architecture and was not designed for performance or agility. As part of the rebuild the client had already determined that the entire interface would need to be rebuilt and so took the opportunity to bring this in line with their brand.
We consulted on design for this interface, advising on technical issues and providing an easily extensible framework for the design work based on atomic design principles. We started with a general feel for the interface in line with the brand and then designed the common elements of the interface. From here we built a coherent plan for the various components the interface would require and built these out in patternlab whilst the design team worked on composing layouts for user journeys.
As the project progressed, we could then work in an agile fashion regardless of the design team's availability. Should a new feature be requested, or an existing feature change, we could rework the feature according to the styleguide. Once built we could then bring design in to polish or approve the new feature. This approach allows a rapid fluidity to the build process with a design-first approach only being strictly necessary for entirely new components.
The application is powered by AngularJS and uses an authentication system based on JWT. This allows for a secure app either across microservices or through a shared gateway as desired and allows the client flexibility as they grow. The usage of AngularJS allows the development team to grow easily around a fixed set of development practices and saves costs due to the range of off-the-shelf plugins, modules, and build tools available.
This approach does not suit every application, but in this case we feel it was a great choice for the client's business needs.
We look forward to a bright future for Comprobo and hope to continue developing new features and refining the application for years to come.