Identity and Access Management
AlgoTrader integrates Keycloak, an open-source Identity and Access Management platform managed by Red Hat. Keycloak offers features such as single-sign-on (SSO), identity brokering and social login, user federation, client adapters, an admin console, and an account management console.
- With the integration of Keycloak, AlgoTrader now delegates most of the security-related functionality to Keycloak
- Keycloak now handle all user logins. The login functionality is highly customizable and includes features like email confirmation, password resets and two-factor authentication (using Google Authenticator). In addition, it supports password policies and custom login flows.
- Users/groups/roles can be synchronized with an LDAP or Active Directory server
- It also allows user signups through Google, Facebook, LinkedIn, GitHub, etc.
- Keycloak also comes with an account management console where users can modify their profile settings, passwords and see their session data. This account management console also allows you to assign owners to individual resources. A resource could be for example an AlgoTrader portfolio or an AlgoTrader account. The user can even share resources with others through the account management console.
- Keycloak comes with an authorization service that can be used to define fine-grained permissions on individual resources (e.g. an AlgoTrader portfolio or an AlgoTrader account) or resource scopes (e.g. trading a particular portfolio, sending orders for a particular account).
- All authorization capabilities are extremely flexible and support users, groups (even group hierarchies), roles (including composite roles), policies, permissions, etc. With these capabilities, authorizations can be configured in a very flexible way. For example, a trader may only be permitted to access his own portfolio, or a risk manager may be authorized to see all system information but not to place any orders, while an admin may be granted permission to assign members to his team.
- Keycloak runs as a separate Docker container that we can deploy alongside AlgoTrader.
Scalability and Persistence
AlgoTrader is an extremely reliable and robust system built on multi-threaded, memory efficient, highly concurrent architecture. It is optimized in terms of high availability and performance so your trading activities will be uninterrupted and continuous.
Read on to find out what AlgoTrader has to offer in areas of performance, high availability, scalability and persistence.
Performance & Low Latency
- High throughput – AlgoTrader processes up to 500,000 market data events per second on dual CPU 2GHz Intel based hardware (see Esper Performance)
- Complex Event Processing (CEP) and event stream analysis of real-time or historical market data enables detection of patterns among market data events (event correlation), filter market data events, aggregate time or length windows of market data events, join market data event streams and trigger based on absence of market data events
- Low Latency – react in real-time to changing market conditions in time frames below one millisecond (see Esper Performance)
- The integrated Hazelcast cache provides an in-memory representation of reference data in the database that can be accessed without any latency
- Automated order recovery after a power outage or system crash
- Customizable notification/logging system based on log4j, including email-logging, text-message logging and portfolio value logging which informs you about technical issues and trading related problems
- Deploy on multiple JVM’s and multiple servers
- Different deployment modes – Distributed Mode (using RMI/JMS) vs. Embedded Mode (single JVM)
- Easily ramp up or down JVM’s and/or servers in line with the needs of your trading activity
Extensive suite of tools that allow monitoring of the entire system:
- The performance of various AlgoTrader components and processes like Market Data Metrics, Order Metrics, Tick-to-Trade Metrics, Esper Engine Metrics, Hazelcast Metrics, and Influx Metrics to give you detailed insights on the performance of various AlgoTrader sub-systems
- Monitoring of the health state of various AlgoTrader components like adapters, data base, Hazelcast caches, and JVM. The health state of these components is also available via API
- General system metrics like memory consumption, CPU usage, JDBC connections, SQL queries, and HTTP calls
- All relevant data is persisted to the database, where it is stored permanently and can be used for custom reporting and querying
- Integration of MySql for reference data and transactional data
- Integration of the InfluxDB time series database for storage of live and historical tick data
- Dynamic data model allowing definition of custom properties (such as additional fields) on entities such as strategy, position and subscription
- Automated Database Migration using FlyWay
For more details on how AlgoTrader can benefit your trading activities, contact us today for more details. We offer consulting services as well full product training either on your premises or remotely, so get in touch today!