Skip to main content

Technical release notes Q2 / 2024

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

The non-functional development focus in this release was particularly on performance and reliability. We classify many of the reliability improvements we do as bug fixes. You can read more about them in our application-specific release notes. Additionally, we extended the coverage of our process monitoring feature because it is going to play a crucial role in the administration of our environments in the future.

Performance

Jsreport scalability

Why?

Jsreport, which is our preferred external reports engine (especially PDF reports), has scalability limitations.

Who is this for?

This improvement is for users who do extensive reporting with Jsreports and require extra scalability.

Details

Report generation is an activity with highly variable workloads. Extensive reporting is often done, for example, once a month, quarter, or year, with far less activity at other times. This makes it challenging to respond to peak workloads while not overcommitting resources when not needed.

In this release, we implemented a mechanism to dynamically scale the degree of parallel processing we can do with Jsreport, providing help to those who use the tool most extensively. We are planning further improvements in processing large reporting jobs with multiple threads in the Q3 release of 2024.

Performance of outgoing payments

Why?

We wanted to improve the performance of the outgoing payment material extension.

Who is this for?

This improvement is for users who generate outgoing payment files in the FA system.

Details

Various technical optimizations allowed us to make outgoing payment processing up to four times faster.

Trade order execution performance

Why?

We found performance bottlenecks in our trade order execution logic, so we optimized it.

Who is this for?

This improvement is for all users who work with trade orders.

Details

Executing trade orders (creating transactions from trade orders) is now faster. We tested the performance impact by running bulk order execution with an internal dataset, and the process became roughly twice as fast compared to the benchmark result. Similar improvements apply to other product features that execute trade orders, but the performance improvement varies from feature to feature.

Advanced searche as default

Why?

We wanted to show the advanced search option to users by default in FA Back search views since advanced searches should in many cases be preferred.

Who is this for?

This improvement is for all FA Back users.

Details

FA Back has quick and extended search in the Customers, Contacts, Portfolios, Securities, Transactions, Trade orders, and Bookkeeping views. While quick searching can be convenient, it can become slow and place significant demands on the database when working with large datasets. FA usually processes advanced searches faster than quick searches, and we want to encourage users to take advantage of this. The extended search option is now shown by default in the search views, unless you change it in FA Back preferences.

quick_search.png
default_search.png

Other

  • We improved the performance of position calculations when producing pre-calculated positions and analyzing portfolios on request.

  • We significantly improved the performance of importing precalculated TWR figures.

Reliability

Report calculation toolkit and memory-optimized calculation

Why?

Sometimes users need to re-run specific purchase lot or position calculations for selected portfolios. Until now, we haven’t had a good set of tools for managing such situations.

Who is this for?

This improvement provides better tools for employees in our FA Customer Services and Professional Services teams and allows them to handle report calculations more efficiently.

Details

We are now able to trigger various kinds of purchase lot and position calculations against arbitrary selections of portfolios. This includes the option to perform memory-optimized calculations for particularly large portfolios.

Extended process monitoring

Why?

In the 2023 Q4 release, we introduced the process monitoring feature for monitoring background tasks, viewing their progressing, and confirming that they have completed successfully. Since then, we have been extending the coverage of this feature.

Who is this for?

This improvement is for users of process monitoring.

Details

The process monitoring now includes rebalance templates, bulk trade orders, bulk order execution, and incoming payments (PAIN.002 only).

Security

We updated Keycloak, our centralized authentication and access management service, to the latest available version (24) as part of this release. Keeping up with Keycloak releases is an important routine activity for us which helps to keep the FA platform secure.

Other improvements

  • We updated our pw-swift-core library, which we use to produce SWIFT messages, to the version SRU2023-10.1.14.

  • We improved the reliability of the bulking process to mitigate the rare situation where a system failure gives client orders the “Bulked” status without a bulk order being successfully created.

  • Fixed a problem related to transaction imports. You can no longer multiple new transactions or trade orders with the same reference number or external ID into the same portfolio. This was never intended to be possible, because external IDs and reference numbers should be unique per portfolio, as they are used to identify transactions or trade orders. A transaction and a trade order in the same portfolio can share an external ID or a reference number, but two transactions or two trade orders in the same portfolio cannot. Previously, importing a new transaction or trade order (identified by reference or external ID) two or more times caused the creation of two or more transactions/trade orders. Now, FA system treats this case as a validation error. In the unlikely event that custom integrations or extensions have relied on the incorrect behavior of creating several transactions/orders, they should be changed to provide separate identifiers (reference and/or external ID) for transactions/orders in the same portfolio.