Skip to main content
search

© 2021 Excellerate. All Rights Reserved

The Client

To increase their market share and improve the viability of their products and offerings, a significant provider of services to registered investment advisors (RIA) engaged Excellarate to build their next-generation platform.

The Challenge

Initial discussions centered on using the company’s internal data center to host the application. That conversation changed after considering the actual cost of ownership to using a cloud-based solution instead. Additionally, there was an expressed desire to move away from the Microsoft stack and take advantage of new technologies such as Angular and Node.js for application and business layer development. Given that, the decision was made to adopt the Amazon AWS platform and use Amazon’s implementation of MySQL, known as Aurora, for the database requirements in conjunction with an Apache webserver to host the application.

The scope of work included a significant product backlog that required sending and receiving files to and from the client network to the AWS S3 environment. In addition, processes that used the AWS Simple Queue Service (SQS) and Simple Notification Service (SNS) messaging systems were developed to communicate with the customer’s existing internal services, including their FIX trading interfaces custodians such as TD Ameritrade, Schwab, Fidelity, and others.

The Solution

A centerpiece of the system would be a portfolio rebalancer solution that the company felt would give them a competitive advantage in the portfolio management space making theirs an unrivaled all-encompassing application from which advisors could better serve their clients. To facilitate the intensive calculation requirements, such a solution would require Excellarate to leverage the AWS serverless computing platform known as Lambda and its Aurora database, which enabled the product to do hundreds of calculations in parallel, providing both speed and accuracy. 

Through Lambda, Excellarate’s Java-based rebalancer solution created trades that aligned security portfolios to their assigned model strategies while incorporating a multitude of trade preferences such as tax sensitivity, trade hierarchies, and security restrictions, to name a few. Lambda enabled the rebalancer to do in seconds what could have taken much longer without such a platform. Internal logging of the decision tree with storage on S3 enabled users to verify that all of the rules were followed in creating trades, thereby leaving no doubt that the buys and sells were valid. 

To facilitate fine-tuning of the generated trades, users could also load the results into a tool that allowed them to make changes to the trades and perform what-if analysis of potential alternatives to those generated by the rebalancer. In addition, an analytics process was developed that ran both after daily imports as well as on-demand. 

Key solution benefits include:

  • Cloud-based, scalable architecture 
  • Portfolio, model, and account management 
  • Upload or create models online 
  • Rebalancer with a multi-level control 
  • Manual or automatic trade generation 
  • Multi-level permission and approval control 
  • Access from anywhere, manage from a single site 
  • Drill down features 
  • Single or group processing 
  • Preference-based rebalancing

The Outcome

The process utilized the rebalancer to identify whether portfolios complied with the model thresholds without making any trades. Here again, Lambda was leveraged to process the results. Excellarate also developed reports and graphical representations of accounts, portfolios, and models to enable RIAs better manage day-to-day operations in addition to creating various import and export processes to allow for offline operations.

As the user base expanded, Excellarate could also size the database servers appropriately through Amazon’s RDS configuration tool. In addition, the system made use of both read-only and read-write database instances available in Aurora to enable scalability and maintain an acceptable level of performance.

By design, Aurora allows for multiple read-only instances, thereby taking the load off the primary instance. This is particularly useful for read-only aspects of an application, such as reporting or loading screen data. Aside from resizing and using read-only instances, the platform’s design was done so that databases for individual tenants could be split into multiple servers, thereby limiting the effect of any one tenant on the performance of another.

Amazon CloudWatch monitoring services were also used to help determine bottlenecks in performance and identify CPU and memory intensive processes for refinement. Additionally, CloudWatch enabled notifications to be generated when predefined thresholds were crossed, thereby alerting administrators to potential problems in the system. Log files stored on S3 provided additional insight into the application’s performance, and by leveraging Splunk technologies, the team was further able to identify issues and better refine the application to be more efficient.

As the project went live, the Excellarate team stayed engaged to provide operational support and enhance the application with new functionality identified during customer beta testing. Automated regression testing by the Excellarate QA team helped ensure that releases were stable and that new functionality was incorporated seamlessly into the existing application. Over time, the team also trained the client’s internal QA staff on the use of the tool and deployment operations so that by the end of the engagement, all operations and maintenance could be successfully managed by the client’s internal team.