Nowadays, robo-advisors have become widespread. These services enable people with relatively low-value investable assets to benefit from online finance and portfolio management. Robo-advisors are automated tools that use a variety of algorithms to allocate assets, such as Modern Portfolio Theory, the Capital Asset Pricing Model , the Black Litterman Model, the Fama–French Model, etc. However, the efficiency of each platform depends on not just the algorithms implemented, but all the system components, including technologies, architecture, development and business processes, etc.
In this post, I want to focus on issues concerning wealth-management platform architecture, and discuss the concepts used when defining the software structure.
Requirements for a robo-advisor platform
To define the best architecture for a robo-advisor platform, you should first specify what requirements the platform needs to meet. Usually, robo-advisors perform the following functions:
- Data collection, which includes the following information:
- Custodian and client data—Demographic information, financial background, and other data regarding each client/custodian.
- External data—Information from data aggregators and broker systems. This data includes basic numbers (earnings, sales, and growth trends) and conventional market data (volume, volatility, expense ratios, various measures of performance, past stock performance, etc). Data formats may vary, but the most common are JSON and CSV.
- Data normalization—Data collected from various sources should be transformed into a unified format.
- Data storage—All historical data should be available for several (at least five) years. You should keep in mind that the dataset is growing rapidly and continuously.
- Data analysis—The platform should provide batch and/or real-time processing of both fresh and historical data. The analysis is based on simple and complex algorithms.
- Data governance and decision making—The main goal of the platform is to leverage data and algorithms to allocate clients’ investment portfolios while reducing risks. This function may include the following features:
- Investment advisory;
- Retirement planning;
- Estate-planning services;
- Tax planning;
- Insurance management;
- Institutional investments, etc.
- Reporting—The platform should present data and enable data visualization.
As you can see, robo-advisors are complex systems with a variety of functions and services. Thus, when defining the platform architecture for a robo-advisor, you should consider the possibility of expanding its features.
In order to reduce the requirements for robo-advisor architecture into a few words, I would highlight the following capabilities:
- A high degree of data agility and data intelligence.
- Algorithmic capabilities.
- High scalability due to great numbers of users, transactions, and channels.
- Possibility to upgrade and expand functionality according to business requirements.
- Creation of a feature-rich user interface with intuitive and advanced visualization.
- Security and reliability.
To meet these requirements, a multi-tier microservice architecture is the best choice for a fast growing wealth management startup.
Why multi-tier microservice architecture?
The major problem faced by most enterprise software startups when they begin to be successful is their inability to expand software features at a satisfactory pace. This is generally caused by a monolithic architecture: adding new features to such architecture requires testing and redeployment of the entire system again and again. Moreover, such architecture becomes a serious challenge when you need to improve the system’s scalability.
On the contrary, when the software platform has a microservice architecture, adding new functionality means creating additional independent services, and testing and deploying only parts of the platform. In addition, if requirements change, particular microservices may be easily replaced without the need to defer subsequent system development.
One of the most important challenges that robo-advisors face is meeting security requirements. When a multi-tier architecture is used, secure APIs guarantee the confidentiality of the information processed. When a microservices architecture is used, databases are less likely to come under external attack, since access is restricted by the services. In addition, security updates may be deployed more easily and quickly if the software system has a microservice architecture.
A platform architecture pattern
Regarding the tiers (layers) required for a robo-advisor platform, the following are obligatory:
- Presentation tier, which consists of Web and mobile applications that enable clients to access the platform.IT produces visualization and UI elements and controls access to the system services.
- Analytics and services tier, which is required for event processing, computing, and portfolio management according to the platform’s predictive algorithms.
- Third-party systems API tier, which enables data exchange with aggregators, broker systems, etc.
- Data transformation tier, which normalizes the data collected from various sources into a single format appropriate to the platform data requirements.
- Data tier, which stores normalized and segmented data that may be used for analytics and governance.
Depending on additional features, the robo-advisor platform may contain more tiers, although services providing extra functionality may be included in the analytics and services tier.
Under the hood
Now, let’s have a look at the best technologies for each tier.
This tier should also be able to create visual reports and visual analysis. Visual reports use charts and graphics that give platform users visual snapshots of their portfolio performance based on predefined metrics. Visual analysis provides results of statistical and predictive analysis that have been performed in the analytics tier.
The analytics and services tier involves business intelligence and analytics, as well as real-time and/or batch messaging. This is the most complex tier, and includes a number of loosely coupled services that each focus on one business task. Communication between the services is provided via APIs.
Techniques such as data science, predictive analytics, and machine learning are used for supporting and improving business processes. For messaging, Apache Kafka, RabbitMQ, and ActiveMQ are good choices. The Analytics and Services tier is mostly built on Java (e.g., Anaplan, Vestmark, Personal Capital, AdvisorEngine, etc), Scala (Jemstep), Ruby (Wealthsimple, Acorns, Bloom, etc), C++ or C# (SelfWealth, WiseBanyan, etc).
The third-party systems API tier enables the exchange of various types of data with manifold channels. Primarily, REST API with JSON is used. Most information is received from data aggregators, such as Quovo, Yodlee, Morningstar, etc., and is retrieved from global financial institutions. The aggregators offer RESTful APIs as a simple and secure way to access data, which often has JSON or CSV formats, and may be easily integrated into a robo-advisor platform.
The data transformation tier needs to convert the variety of data formats received into a unified format.
Robo-advisors generally deal with a number of data types, such as client account data, transaction data, wire data, trade data, etc. The data tier should be able to deal with Big Data and provide batch, streaming, in-memory, and real-time processing. For this tier, both SQL and NoSQL database types are used. The most popular databases are MySQL (Wealthfront, Motif Investing, Expensify, Voyant, Vanguard, etc), PostgreSQL (Wealthsimple, Acorns, Stash, etc), Cassandra (Anaplan, Deem, etc), MongoDB (Personal Capital, Ginmon, Yomoni, Swanest, Ginmon, etc). The Apache Hadoop and Spark are the best choices for processing large amounts of data in a short time due to their ability to run parallel calculations, retain data for long periods of time, and be horizontally scaled.
To meet the requirements imposed on wealth-management platforms such as robo-advisors, their architecture should be logical, and enable straightforward upgrading and expansion of their functionality. Multi-tier service-oriented architecture ensures maximum security and scalability while providing optimal performance and maintainability. In addition, using microservices architecture has a number of benefits. For example:
- Each microservice is focused on a particular function and may be easily created and changed when needed.
- Microservices are independent of each other; improving or removing any of them should not influence others.
- Microservices are loosely-coupled; thus, they may be created by distributed teams, using different programming languages and tools.
As robo-advisors provide an increasing number and variety of services, the microservices architecture becomes the only efficient way to make wealth-management platforms flexible, scalable, and rapidly extendable.