Technical release notes Q4 / 2023
Technical release notes highlight the development work done to make the FA Platform fast, secure, reliable, and adaptable.
Performance
Overview
Performance improvements continue to be a major focus area, and we achieved many significant improvements in this area during the quarter.
Improved position aggregation speed
Why?
Many features of the FA Platform calculate positions by combining purchase lots with market prices, bypassing the pre-calculated daily position records. Such features usually have the ability to aggregate positions from multiple portfolios. The Overview in FA Back is a commonly used example of such a feature. If you use such features with large volumes of data, calculating the positions may take a while.
Who is this for?
All users of the FA Platform.
Details
We were able to noticeably speed up the calculation and aggregation of positions across multiple portfolios. The speed of calculating positions for individual portfolios is not significantly affected. The changes were mainly made to the data loading logic and affect a wide variety of features that utilise dynamic position calculation. This includes APIs.
Improved Analytics+ analysis speed
Why?
Analytics+ is a core feature of the FA Platform and used extensively for things like client reporting and FA Client Portal. Analysing portfolios with a large number of positions for long periods of time is a resource intensive operation and can take a while. For certain use cases, (e.g. FA Client Portal), its speed is crucial.
Who is this for?
All users of the FA Platform who work with Analytics+, including client reporting, FA Client Portal, or Analytics+ APIs.
Details
Various technical optimizations allowed us to improve the analysis speed of Analytics+. The improvements mainly relate to how the FA Platform loads the underlying data required for analysis. All features that utilize Analytics+ are faster as a result, but analyses that combine data from multiple portfolios are impacted the most. The speed of Analytics+ is important, and we will continue to work on it during future quarters.
Faster bookkeeping posting generation
Why?
For FA Platform users who use bookkeeping rules and postings, the speed of generating and saving postings can become a performance bottleneck. This change makes saving and updating transactions faster for portfolios that have bookkeeping rules enabled.
Who is this for?
Users of the FA Platform in environments that use bookkeeping rules.
Details
Various technical improvements allowed us to significantly speed up bookkeeping posting generation. One of the changes was the technical separation of bookkeeping rules from other kinds of rules in the system (e.g. decision tables). This allows us to skip running other kinds of rules in cases where we only need to run posting rules.
Bulking and bulk execution performance and scalability
Why?
Trade order bulking and bulk order execution are two of our standard trading extensions. They allow you to combine multiple client orders for the same security into a single bulk order, allowing you to execute it more efficiently than handling each client order separately. Bulk order execution distributes executed bulk orders back to their underlying client orders. Bulking and bulk order execution were resource-intensive operations and their speed had room for improvement.
Who is this for?
Customers who use bulking and bulk order execution features.
Details
Various technical improvements allowed us to make these features significantly faster. They are now less resource-intensive when run against many trade orders at once.
If you use these extensions, please update them to the latest versions to benefit from the improvements. Extensions are automatically updated to their latest versions for customers who have our standard solution package installed.
Trade order validation performance and scalability
Why?
Trade order validation is a standard extension for checking that portfolios have sufficient cash/units to cover a given trade. It can also run limit checks. This extension may be run against many trade orders at once. It needed to be improved in terms of its performance and scalability.
Who is this for?
Customers who use trade order validation.
Details
Various technical improvements allowed us to make this feature significantly faster. It is now less resource-intensive when run against many trade orders at once.
If you use this extension, please update it to the latest version to benefit from the improvements. Extensions are automatically updated to their latest versions for customers who have our standard solution package installed.
Further improved performance in FA Client Portal
Why?
Listing securities in the monthly investment wizard was not fast enough.
Who is this for?
Users of FA Client Portal.
Details
For improved performance and user experience, the security performance (TWR) is now fetched security by security in the monthly investment wizard. There is a loading indicator that is replaced by the TWR once it is available, and TWR is reused when, for example, changing pages and filtering in the monthly investment wizard.
Other performance improvements
Fixed an issue with trade order views in FA Back loading very slowly in certain environments, regardless of search criteria.
The FA Platform is now faster at generating EXT ID values to new transactions and trade orders which can make it significantly faster to save new transactions or trade orders to portfolios containing many transactions or trade orders.
Improved backend performance related to loading profile data (custom fields).
Updating accounts via our importer no longer triggers unnecessary position calculations.
The shareholder registry view in FA Fund Management is now faster by default because it does not automatically load purchase lot information.
Reliability
Business process monitoring
Why?
The FA Platform is able to execute various long-running processes and background tasks whether scheduled or event-based. The tasks typically provide feedback once finished, but information about background tasks still in progress has been difficult to find.
Who is this for?
Users who want to monitor various background tasks, to view how they are progressing, and to confirm they have completed successfully.
Details
We implemented a new “Processes” section in FA Admin Console that allows users to browse completed and ongoing processes. In the Q4 release, the following features are covered:
Nightly market price updates and position calculation
Background report generation (PDF, XSLX, other formats)
Various tasks in FA Fund Management, especially related to NAV calculation
Scheduled corporate actions
This coverage will be extended significantly in the next quarter.
Jsreport version upgrade
Why?
The jsreport embedded reporting engine is an important part of FA platform, and it is important to keep it up to date to ensure that it remains secure and reliable.
Who is this for?
This improvement is for all users who customize or run reports via jsreport.
Details
This release includes a jsreport version upgrade from 3.13.0 to 4.1.0. Please refer to jsreport release notes for more information. Please note, that this version update may cause slight changes to the layouts of PDF reports. If possible, we recommend testing customized PDF reports after the upgrade, to detect any potential problems.
Other reliability improvements
We no longer allow importing multiple rows containing the same contact/portfolio/security with a single file. Starting from this release, whenever FA encounters an import file with the same contact/portfolio/security multiple times, the duplicate rows are rejected. Previously, such imports could lead to undesired results. The same change also applies to imports via our import APIs.
Security
Major Keycloak upgrade
Why?
Keycloak plays a central role in the security of the FA Platform. Keeping our Keycloak version updated is important for ensuring that the platform stays secure.
Who is this for?
This change affects every instance of the FA Platform.
Details
In this release, we upgraded our embedded Keycloak instance to version 22.
Other security improvements
We improved the security of standard and custom integration routes making SFTP type transfers by adding a general known_hosts file that is populated with the host paths to which the routes connect to. All SFTP routes use this file to check the validity of the hosts they are connecting to. Previously, known host information was handled in a less centralized manner.
Other improvements - Material UI
During the past quarters, we have re-evaluated our approach to managing React component libraries. Instead of combining multiple component libraries together to build our React applications, we have made the decision to focus on a single comprehensive UI framework as much as possible. We selected Material UI (https://mui.com/) as our primary UI framework. It is an industry-leading framework based on Material Design principles. In addition to developing new frontend applications with MUI, during Q4, we started to convert some of our existing applications into this new framework.
In the short-to-medium term, this brings some additional flexibility to how you can work with data tables in our React-based applications and allows you to organise the data to suit your workflow. The new tables also allow you to export content as CSV or XLSX files. In the long-term, the significance of focusing on a single industry-leading UI framework is greater. It helps us to build and maintain our frontend applications efficiently with high quality and consistent user experience and usability.
The shift to Material UI does not affect FA Client Portal due to licensing and backwards compatibility reasons, but it affects all other React-based applications in the FA Platform.