- TypeScript
- Java
- SQL
AWS, CDK - TypeScript
For CI/CD, we use a lot of AWS: codebuild, codepipeline, lambda, ECR.
The AWS code is in a separate repo, there's no credentials in there but we're still reluctant to make it publicly available, especially early during development.
https://github.com/au-research/raido-v2-aws-private
We would be open to working on a simple "example" AWS CDK infrastructure.
Managed via AWS RDS.
No cross-database support, we take full advantage of Postgres features without needing to worry about cross-DB compatibility
For Schema migration.
Developers are encouraged to understand SQL and use it to full potential, with jOOQ helping us take advantage of static typing for our queries.
After a new schema is defined and migrated, we generate jOOQ code for accessing the database, see db/raido/build.gradle.
Currently, the API is defined as an OpenAPI 3.0 yaml
document.
We plan to use OpenAPI 3.1, but the tooling hasn't caught up with the specification yet (seems like the complexity of the change to json-schema surprised most people with how much work it turned out to be).
We define the API as a yaml
file, then the Java interfaces for serving
the API from the api-svc (Spring) are generated via the openap-generator,
see idl-raid-v2/build.gradle.
The client-side TypeScript mappings are also generated via openapi-generator, see app-client/build.gradle.
- Docker
- very simple setup running on EC2 via shell script,
see /api-svc/docker
- unfortunately, the actual shell script to install and run the container is in the private rep
- very simple setup running on EC2 via shell script,
see /api-svc/docker
- Java
- JDK 17 - Corretto
- Spring
- Not spring-boot
- Gatling
- load testing
- we use the Java API bindings for this, no Scala
- TypeScript
- React
- With
react-query
, but no Redux or similar Flux implementation
- With
- Material UI
We use OpenApi with an “API first” approach, Java and TypeScript code is generated from the OpenApi definition.
Little bits of scripting stuff, the usual glue code.
- Docker
- i.e.
Dockerfile
- i.e.
- Groovy
- Gradle build scripts
- legacy data migration
- Shell scripts
- for booting up EC2 instances,
codebuild
definitions
- JavaScript
- little bits of glue, like in NPM scripts, etc.