# Technology

## **Scalability & AWS**

We are certain that we are capable of providing the best possible experience to all users, and for that purpose, we believe that it's crucial that we can guarantee a peaceful and sound scalability of our servers. We know by experience how stressful and annoying can be when you are not able to perform your daily tasks due to external issues; for that reason, **we are starting from Day 1** **on** **Amazon Web Services (AWS)** servers, aiming to diminish the possibility of users not being able to contribute for multiple days and generating negative speculation on the market.

## **Blockchain**

Our Smart Contracts will run on **Binance Smart Blockchain** **(BSC)**, as this network is fast, secure and has low fees. Contracts were developed using **Solidity** and tested using Truffle and Ganache.&#x20;

## Frontend

The frontend was developed using React as its high performance and scalability are aligned with our user's growth expectations. Our frontend is fully responsive, meaning that you can even play on your mobile device. Our frontend is hosted on AWS S3 Bucket using CloudFront (AWS CDN), which is scalable and fast.

## **Backend**

Our backend and API are divided into **8 different microservices** and 1 API gateway to assure scalability. These microservices are all developed using Node.js, Express, and a combination of MySQL and MongoDB for the databases. Redis is also used for query caching and settings storage.

## **Amazon Web Services**

Every microservice will run on an **Elastic Beanstalk** configured to **autoscale** as user traffic increases. Each one will have an Application Load Balancer and multiple EC2 instances attached to it.

Our databases will run on Amazon RDS and Amazon MongoDB. Images and large files will be stored on Amazon S3 Bucket. We will use Amazon ElasticCache to host a Redis client.

## **Security**

Every microservice except the API gateway is only accessible from our **Virtual Private Cloud** **(VPC)**, this way no one can access our API except by using our API gateway, which has authorization and authentication processes. Communication between microservices is done internally in the VPC, and even communication between them requires authentication.

Every request to our API requires an authentication token; we will use **JSON Web Token** **(JWT)** as our authorization and authentication method. We also have an extensive permissions system to prevent users from doing stuff they are not allowed to!

## **Anti Bots**

We have implemented an AI bot detection system to get rid of the annoying bots that won’t let us enjoy the game and could hurt Billiardo economy.
