Technology stack
Criteria
The technology stack has been chosen based on the following criteria:
- Existing Home Office use
- Ability to reuse existing services (HO and X-GOV)
- Cabinet Office Technology Code of Practice
- Project requirements
- Team skillset
Microservices
- Java
- Spring Boot
- Spring Data (JPA)
- Flyway (database migration) scripts
Frontend
- NodeJS
- ReactJS
Databases
- Postgres (AWS RDS)
- H2SQL (in memory for testing)
- Flyway (for migrations)
Workflows
- BPMN (Business Process Model and Notation) via Camunda
Integration
- Apache Camel
- AWS SQS
- AWS SNS
Search
- Elastic Search (AWS)
Documents
- JODConverter (Java API to orchestrate LibreOffice)
- LibreOffice (for document conversion)
- ClamAV
Testing
- Selenium for acceptance tests
Other
- GitHub Actions
- Keycloak (ADFS)