Cryptocurrency Exchange
Cryptocurrency Exchange | FinTech | Trading platform
NAME OF PRODUCT
Cryptocurrency Exchange Solution Development
CLIENT
British startup
INDUSTRY
FinTech
PROJECT DURATION
12+ months
Project Team
3
BACKEND DEVELOPERS2
QA ENGINEERS1
BUSINESS ANALYST1
PROJECT MANAGERBusiness Objectives
The idea to create a reliable and secure cryptocurrency exchange solution from scratch led a British startup to our company. The client needed to reinforce their team with our backend development specialists to implement the functional part of the product.
Project Challenge
Our team was responsible for providing the system’s low latency, so that it could handle huge volumes of data without sacrificing high performance.
The solution key features and capabilities should include:
- a deterministic matching engine
- WebSocket Event Streams
- order book implication
- cross margin risk management
- positions liquidation
Solution Description
Handling bunch of requests at a time
We delivered a scalable platform able to process hundreds of thousands of requests simultaneously and manage thousands of transactions.
Giving utmost security
Our trading solution supports nine trading pairs and two-factor authentication, which enables user-focused security.
All data clearly visible and arranged
An intuitive admin dashboard of the fintech platform allows viewing reports, seeing fees, and managing user profiles without effort.
Two platform parts – a variety of processes covered by each
The solution consists of two parts, among which are:
User API
- registration
- wallets for crypto and fiat currencies
- order processing
- processing messages from the core part
- storing and updating data in the database
- displaying the current state of the exchange
- showing the transaction history
- building and displaying analytics
Core
- incoming order processing
- WebSocket Event Streams
- developing a data tree with the available exchange prices
- launching the related internal processes
- positions liquidation
- sending messages about the internal changes to the API
Key Features
- Highly scalable low latency system
- Extendable set of instruments (spots/futures)
- Implied engine: IN and OUT orders (second generation)
- Auction style trading sessions (FIFO distribution)
- Market, limit, stop-loss, stop-loss limit, and take-profit orders
- Different types of time in force orders including GTC (good-’til-canceled), IOC (immediate-or-canceled), FOK (fill-or-kill)
- OneForAll and RestForAll batch processing
- Mark price protection
- Spot markets
- Real-time dashboards
- Custody implementation
Tech Stack We Used
- BEAM stack (Elixir, distributed Erlang, distributed cluster, and supervisors)
- Data sharding with Amazon RDS (PostgreSQL)
- InfluxDB
- RabbitMQ
- Amazon EKS (Elastic Kubernetes Service)
- Amazon CloudWatch
- Prometheus
- Grafana
Development Approach
- We built a cryptocurrency exchange architecture based on microservices and WebSockets.
- The custom matching engine was written in Elixir and powered by pure deterministic evaluation of data structures and write-ahead logging.
- Spontaneous Implied Matching (SIM), second generation, is involved.
- L3 order book is provided.
- The high scalability of web socket event streaming is achieved through the state evaluation for each connected client and a Publish/Subscribe system using RabbitMQ as backend.
- System sanity checks – to monitor and alert to any issues – are based on Prometheus metrics exporting.