Success Stories

Swiss. Digital asset exchange.

Custody, trading and brokerage to customers from 130 countries

Overview

Our partner is a financial technology company operating a digital asset and cryptocurrency exchange. As a fully compliant exchange, authorized by the financial supervisory authority of Liechtenstein, the company provides custody, trading and brokerage to customers from 130 countries. Over the last 5 years, the product has grown into a full-service investment platform for digital assets serving two groups of customers: retail customers from over 130 countries and financial institutions.

Prime Holding was engaged initially to assist with designing a great user experience for the end-users but quickly spun across continuous product development, 3rd party integrations, cloud security, and infrastructure.

Challenges

Our client needed to develop a platform for alternative investment in digital assets, such as cryptocurrencies, tokenized assets, and security tokens. They needed to host the public funding of the company, do full user KYC, Payment integrations and build a fully-fledged exchange to facilitate the core business - investment in digital assets.

Due to the dynamic nature and high risk associated with the space, we had to apply the highest security standards and have scalability in mind when designing and developing the system. To support some of the requirements and facilitate business processes, the team made several integrations with external systems, such as salesforce and payment processors, ensuring data security, platform scalability, and failover.

Solution

The developed system consists of several microservices, each built, tested and deployed through CI/CD pipelines via Concourse. Each of the services is deployed to a Kubernetes cluster for the designated environment and can be scaled out independently from the others based on the utilization. All of the microservices are monitored using EFK stack and Zipkin tracing.

The build pipeline for each service consists of the following steps:

  • Checkout code, Run tests and code lint
  • Build a docker container and push it to a remote repository
  • Deploy to the relevant environment with appropriate variables and secrets through Helm charts


There are four environments on which we run deployments - development, UAT, staging and production, where only the deployments to development and UAT environments are automatic through Concourse.
Deployment to the other two environments is done manually based on the release schedule and coordinated with the release manager.

Access to deployment credentials was given to a group within the organization, assuring access control using GPG encryption. Access to different environments requires VPN access with additional OTP authentication. The infrastructure is monitored using Prometheus and Grafana. We are running Amazon ElastiCache for Redis and Amazon RDS PostgreSQL for data persistence.

The CI system is fully integrated with additional toolings, such as Slack, JIRA and GitHub, to provide alerting functionality, and builds for release, development and feature branches. As an extra layer of security, we use Cloudflare to protect against DDOS, leverage caching and SSL and manage external network access.

Results
  • Delivered a robust, scalable, and maintainable exchange product
  • Fully utilized cloud security and infrastructure (AWS)
  • Pushed towards streamlining product development and release processes
  • Did multiple integrations incl. core exchange solution, liquidity provider, payment processor and KYC
Quick Facts
Duration: 2 years

Technology Stack: Angular, Java (Spring Boot), GraphQL, TypeScript, NestJs, Concourse CI, AWS KOPS (Kubernetes), EFK stack, AWS Cloud - VPC, CloudFormation, S3, EFS, RDS, Elasticache, ECR, WorkSpaces

Team: 8 Software Developers, 1 PM, 1 QA

Let's talk about your Ideas.

Contact Us