Skip to main content

Technical release notes Q2 / 2025

Technical release notes highlight the development work done to make the FA Platform fast, secure, reliable, and adaptable.

Performance

Performance of mass-saving transactions

Why?

We identified and addressed several bottlenecks related to running corporate actions. We also found and addressed one bottleneck related to mass-saving transactions across multiple portfolios.

Who is this for?

All users of features that mass-save transactions, for example, corporate actions.

Details

Various technical improvements allowed us to increase corporate action throughput, in terms of transactions saved per second during corporate action runs, by 2-2,5. One of the improvements we made also translates to other features that mass-save transactions across many portfolios.

Faster mass-deletion of orders and transactions

Why?

We identified and addressed a bottleneck related to mass-deleting transactions and trade orders. The main scenario where this happens is when we delete or re-run corporate actions or fees, which deletes the previously generated transactions.

Who is this for?

FA users who run corporate actions or fees.

Details

A technical improvement allows FA system to mass-delete transactions and trade orders significantly more efficiently than before.

Improved report calculation performance for large portfolios

Why?

We found a key bottleneck that can cause purchase lot and positions calculations for large portfolios to take a long time.

Who is this for?

FA users who work with portfolios that contain many transactions (100 000+).

Details

This change improves purchase lot and position calculation speed for large portfolios that don't use shared accounts. The larger the portfolio is in terms of transaction count, and the longer the recalculation date range, the larger the impact of this improvement. The key bottleneck relates to finding transactions that affect shared accounts. When we use shared accounts, purchase lot calculation needs to account for transactions from other portfolios which may affect the balance of the shared account. We introduced an optimization that allows us to skip this step for portfolios that do not use shared accounts.

Posting generation performance

Why?

Mass-generating postings for from FA Back’s transactions view could take a fairly long time and require a significant amount of server resources (server memory).

Who is this for?

FA Back users who mass-generate postings from the Transactions view.

Details

We optimized our posting generation code to make it lighter in terms of memory consumption, and somewhat faster. Process monitoring records are now kept whenever users mass-generate postings from the Transactions view.

Performance of imported TWR data

Why?

We discovered and resolved several bottlenecks related to imported TWR data.

Who is this for?

Users of imported TWR data.

Details

Our solution for importing TWR data into FA Platform didn’t scale sufficiently well for hundreds of millions of records. We optimized several aspects of this. Most significantly, we improved our support to efficiently migrate huge quantities of TWR data, and we improved our indexing to allow Analytics+ to load this data in a more scalable way.

Other performance improvements

  • We made FA Back’s Contract window significantly faster for environmentswith many portfolios.

  • Finding trade orders based on their order status (such as Executable or Accepted) is now faster for scheduled processes and our GraphQL APIs.

  • FA Back’s Queries view featues a Stop button. Until now, clicking this button stopped the query process in FA Back, but not the process in thedatabase. This left potentially very long-lasting and heavy queries running in the database, which can impact system performance. Now, the Stop button also stops the query process in the database.

Jsreport security, performance, and stability improvements

Why?

We upgraded and reconfigured the embedded Jsreport service to improve performance, stability, and security. These changes address file system locking issues, simplify access management, and ensure the platform remains up to date with the latest supported version.

Who is this for?

This improvement is for the users who manage or create report templates in the FA Developer application, and anyone relying on Jsreport functionality in FA Platform.

Details

We implemented several updates to the embedded Jsreport service:

  • Upgraded Jsreport from 4.6.0 to 4.8.0 as part of routine version maintenance. Jsreport release notes are available in jsreport GitHub repository.

  • Reconfigured Jsreport to store data in a blobstore instead of a virtual filesystem. This was done to improve the performance and reliability of jsreports: we have noticed occasional issues with file system locks in the virtual filesystem. This could cause report generation to get stuck for no apparent reason.

  • Integrated jsreport authentication into our centralized accessmanagement solution (Keycloak), eliminating the need for a separate jsreport username and password. Now, users with access to the Reporting section of the FA Developer application automatically receive access to the jsreport template editor.

Security

Q2 2025 release features the following security-related improvements:

  • Updated Keycloak, the centralized authentication and access management service, to the latest available version. This only required a minor version upgrade of Keycloak, as FA Platform was already using Keycloak 26. Keeping up with Keycloak releases is an important routine activity which helps to keep the FA Platform secure.

  • Updated various libraries in some of the back-end services. Keeping dependencies up-to-date helps to keep FA Platform's services fast and secure.

  • Hardened parts of the back-end and front-end applications against certain types of exploits related to text rendering settings.

Trading integrations

  • Kodiak trading integration updates. The Kodiak trading integration was updated with new fields: TradeID, ContraBroker, Commission, and CommType. It also now supports executing partial orders as separate executions for equity and bond orders.

Other

  • Improved fault-tolerance in FA Back’s Versions window. In specific environments, missing audit records due to incomplete data migration would sometimes prevent users from browsing some objects’ past versions. We improved error handling in the Versions window to handle such situations better.