- Scala (v2.13.8)
- Akka-Http (v10.2.4)
- Akka-Stream (v2.6.14)
- Slick (v3.3.3)
- Cats (v2.8.0)
- Slf4j (v1.7.5)
- PostgreSQL (v14.0)
- SBT (v1.7.2)
- Docker-Compose (v2.6.1)
- Liquibase (v4.13.0)
The chosen solution is based on the classic layered architecture
- Presentation Layer represented as controllers
- Business Layer represented as services
- Persistence Layer represented as repositories
- Database Layer represented as PostgreSQL
Importing and parsing xml works based on message queue and scheduler.
The xml
table in the database is used as the message queue.
And as a scheduler, the mechanism (Scheduler) built into akka http.
$ sudo docker-compose up
$ liquibase update-count 1