In short it is system that uses distributed database (PostgreSQL) with logical replication.
On backend there is REST Api created in .NET CORE 6 with Entity Framework Core, for documentation please refer to documentation made by Swagger.
On frontend there is web app build with React.js, Axios, Redux and Typescript.
There are 6 PostgreSQL database servers in this project, 2 for each region. Each region has Write server and Read server, Write server replicates data on Read server. The goal was to distribute data accross regions and ensure better durability and consistency of data stored.
in main directory executte comand
docker compose up
Then after databases are ready to accept connections go to ./Scripts
and execute DoFullSetup.sh
it will do following things:
- Create Entity Framework Core migrations for database
- Apply migrations in databases
- Create subscriptions on databases for logical replication
- App runs on port:
3000
- Api runs on port:
30010
From main directory go to ./Kubernetes/DeploymentScripts
and execute _doFull.sh
it will do all deployments for you,
if you want to remove all deployments then execute _deleteFull.sh
After that go to ./Kubernetes/SetupScripts
and execute DoFullSetup.sh
it will do following things:
- Create Entity Framework Core migrations for database
- Apply migrations in databases
- Create subscriptions on databases for logical replication
- App runs on port:
30011
- Api runs on port:
30010