This is a realworld api example app featuring Arrow, Kotlin and Spring Boot.
NOTE: not yet feature complete, see TODOs.
Goals
- experiment functional Kotlin backend programming using Arrow
- implement realworld api spec in order to cover non-trivial use cases
- production grade rest api with strong integration test suite to enable easy refactoring
- clear separation of core business logic (
realworld-domain
) from the supporting infrastructure (realworld-app
,realworld-infra
)- framework independent domain
- adopted ideas from onion, hexagonal and clean architectures (they might be all the same)
- NOTE:
realworld-app
could be a submodule ofrealword-infra
, but I wanted to put emphasis on the deliverables by using a separate top level module
Prior art
How to build
Prerequisites
Install Docker and Docker Compose:
Init DB
docker-compose up -d
./gradlew flywayMigrate
Build
./gradlew build