Technical release notes Q3 / 2025
Technical release notes highlight the development work done to make the FA Platform fast, secure, reliable, and adaptable. This version is lighter than usual in terms of nonfunctional improvements; the Q4 release will bring more significant changes, thanks to certain items which were started but not finalized during Q3.
Performance
Optimized transaction search record creation
Why?
FA system produces transaction search records whenever transactions are saved. We found a way to make this significantly faster.
Who is this for?
This improvement is for all users.
Details
Although transactions are efficiently mass-saved in batches, the saving triggers creation of transaction search records (so-called TransactionVOs) as an asynchronous process. Before, his process handled transactions individually. In this release, we adjusted it to a batch processing model, which significantly increased transaction search record creation throughput.
Users might have noticed the bottleneck when running operations that create large numbers of transactions or trade orders. In some cases, the transactions or trade orders wouldn’t show up in FA Back’s search views for several minutes. This background processing would also cause a large number of queries to our database – the batch operating mode is faster and more resource-efficient, and therefore minimizes the impact of large transaction or order-creating operations on other concurrent activity in the platform.
Optimized the Versions window performance
Why?
The Versions window in FA Back shows how the data has changed over time. Before, opening this window could be very slow and it could show incomplete results for objects that are frequently modified.
Who is this for?
FA Back users who use the Versions window.
Details
Before, opening the Versions window caused FA Back to load the full version history of the object (such as transaction) for the recent modifications. In case of objects that are frequently modified, this meant immediately loading and processing 50 audit records, which is a complex and resource-consuming task. Browsing older versions of the object was not possible in the Versions window – it only showed 50 most recent records.
Now the window is optimized to initially only load audit metadata – when the object was modified, and by whom. This is very fast. The audit records themselves are only loaded when needed. Unfortunately, loading a specific audit record can still take a long time in certain cases, due to how the audit record is constructed, and due to how MySQL’s query execution optimizer works.
FA Back scrolling timeout
Why?
In FA Back, scrolling through a long list of items, for example, transactions or trade orders could sometimes cause the UI to get stuck for a long time. We addressed this by adding a timeout.
Who is this for?
This improvement is for FA Back users.
Details
When FA Back lists data in the Transactions, Trade orders, Contacts, Portfolios, and Securities views, the list you see is actually paginated. When a user scrolls through a large list, FA Back dynamically loads additional pages of results. Sometimes this dynamic loading can run into a problem where it can’t find the correct page and spends a very long time trying to find the right set of data. We added a timeout to these scrolling scenarios to mitigate the issue.
Improved performance of large position and purchase lot calculations
Why?
Purchase lot and position calculations core features of the FA platform. The performance of purchase lot calculation significantly affects the speed of all features that produce transactions.
Who is this for?
This improvement is for all users, especially those who who work with large portfolios.
Details
We found and addressed a bottleneck that affects both purchase lot and position calculations, particularly when the calculation covers a large number of purchase lots, or a long period of time. The bottleneck concerns how we remove the previous data at the start of the position or purchase lot calculation. Addressing this bottleneck will not affect the majority of platform usage, but will help in edge cases where large calculations would sometimes get stuck for an extended period of time (10+ minutes in some cases).
Other performance improvements
FA Client Portal now lists tradeable securities faster than before. This is noticeable when the number of tradeable securities is in the hundreds or thousands.
Reliability
Jsreport upgrade and reliability improvement
Why?
Some of our customers have continued to experience issues with jsreport, where rendering of reports could get stuck for an extended period of time.
Who is this for?
This improvement is for the users who run Jsreport-based reports in FA system.
Details
For this improvement, we made the following:
Updated Jsreport from 4.8.0 to 4.10.0 as part of routine version maintenance. Jsreport release notes are available in jsreport GitHub repository.
Reconfigured Jsreport to no longer use a Chrome pool. Instead launch a separate Chrome process for each report. This improves report generation reliability at the cost of a very slight decrease in throughput. This change was also retroactively applied to our Q2 2025 release.
Trading integrations
Internal info field for trade orders now includes ExecID from the FIX message. This is the unique ID of an execution message – extracting this ID gives access to the message, which can be used, for example, to build a custom report.
Improved the trade order flow for partially filled orders that expired. Before, the entire order received “Expired” status in FA Back, even though it was partially filled. Now, the order is split in two orders, with “Executed” and “Expired” statuses. The improvement works for all trading platform integrations that use FIX formats.