About EMBER Server
Ember follows modern event sourcing architecture and is inspired by Disruptor and Aeron. The system is optimized for low latency but can process up to half a million trading signals per second on a single server node. The following diagram shows the Ember core:
To achieve optimal latency system employs allocation-free data processing, spin waits, cache line padding, CPU affinity, and other tricks despite being written in Java. Normalized Java API enables quick development of custom trading logic. Ultralight Event Processing video presentation by Andy Malakov.
Ember can achieve 10 microseconds median time for tick-to-order processing (packet-to-packet measurements using LIBPCAP.
Ember Technology Stack
Sometimes one must make own tools and custom components to achieve perfection. We designed and implemented a specialized replication/storage layer that beats Kafka/BookKeeper/Redis in metrics that are important for our domain. We developed a specialized containers library that beats Apache Commons, Google Guava, Koloboke, and alike. We developed specialized data codecs that beat Protobuf, Thrift, and Avro. We have the fastest Java-based implementation of the FIX engine. We even built an uber-fast Logging library and a Decimal data type. But no software can exist in isolation. Ember relies on TimeBase and is frequently used in CryptoCortex solutions. We are integrated with more than 100 different exchanges and execution venues (ranging from CME to COINBASE). We extensively rely on AWS for our research development. Ember can stream data to Amazon S3 / RDS and Yandex Clickhouse. Our frontend GUI uses Angular, Bootstrap, and Spring. We deploy using Ansible/Terraform and Docker Compose or Kubernetes. We monitor our deployments using Prometheus, Grafana, and Graylog.
Ember Server uses DELTIX Open Source Technologies such as TimeBase, DFP, GFLog, ThreadAffinity.