├── .gitignore ├── _config.yml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── misc ├── diagram.drawio ├── hexagonal-bank-app.png └── hexagonal.png ├── readme.md ├── settings.gradle.kts └── src ├── main ├── kotlin │ └── com │ │ └── bank │ │ └── transfers │ │ ├── app │ │ ├── domain │ │ │ ├── Account.kt │ │ │ ├── Ids.kt │ │ │ ├── Transaction.kt │ │ │ └── Transfer.kt │ │ ├── port │ │ │ ├── driven │ │ │ │ ├── AccountBalanceChecker.kt │ │ │ │ ├── AccountFinder.kt │ │ │ │ └── Transactor.kt │ │ │ └── driver │ │ │ │ └── TransferMoney.kt │ │ └── usecase │ │ │ └── TransferMoneyUseCase.kt │ │ └── infrastructure │ │ ├── adapter │ │ ├── driven │ │ │ ├── InMemoryAccounts.kt │ │ │ └── InMemoryTransactions.kt │ │ └── driver │ │ │ └── ktor │ │ │ └── TransferHttpRoutes.kt │ │ └── config │ │ ├── ApplicationModule.kt │ │ └── ApplicationRunner.kt └── resources │ └── logback.xml └── test └── kotlin └── com └── bank └── transfers ├── acceptance └── TransferMoneyAcceptanceTest.kt ├── app ├── domain │ ├── TransactionTest.kt │ └── TransferTest.kt └── usecase │ └── TransferMoneyUseCaseTest.kt └── infrastructure └── adapter ├── driven ├── InMemoryAccountsTest.kt └── InMemoryTransactionsTest.kt └── driver └── ktor └── TransferHttpRoutesTest.kt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/.gitignore -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/_config.yml -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/gradlew.bat -------------------------------------------------------------------------------- /misc/diagram.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/misc/diagram.drawio -------------------------------------------------------------------------------- /misc/hexagonal-bank-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/misc/hexagonal-bank-app.png -------------------------------------------------------------------------------- /misc/hexagonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/misc/hexagonal.png -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/readme.md -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/settings.gradle.kts -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/domain/Account.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/domain/Account.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/domain/Ids.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/domain/Ids.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/domain/Transaction.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/domain/Transaction.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/domain/Transfer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/domain/Transfer.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/port/driven/AccountBalanceChecker.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/port/driven/AccountBalanceChecker.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/port/driven/AccountFinder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/port/driven/AccountFinder.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/port/driven/Transactor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/port/driven/Transactor.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/port/driver/TransferMoney.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/port/driver/TransferMoney.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/app/usecase/TransferMoneyUseCase.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/app/usecase/TransferMoneyUseCase.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryAccounts.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryAccounts.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryTransactions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryTransactions.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/infrastructure/adapter/driver/ktor/TransferHttpRoutes.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/infrastructure/adapter/driver/ktor/TransferHttpRoutes.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/infrastructure/config/ApplicationModule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/infrastructure/config/ApplicationModule.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/bank/transfers/infrastructure/config/ApplicationRunner.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/kotlin/com/bank/transfers/infrastructure/config/ApplicationRunner.kt -------------------------------------------------------------------------------- /src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/main/resources/logback.xml -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/acceptance/TransferMoneyAcceptanceTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/acceptance/TransferMoneyAcceptanceTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/app/domain/TransactionTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/app/domain/TransactionTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/app/domain/TransferTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/app/domain/TransferTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/app/usecase/TransferMoneyUseCaseTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/app/usecase/TransferMoneyUseCaseTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryAccountsTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryAccountsTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryTransactionsTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/infrastructure/adapter/driven/InMemoryTransactionsTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/bank/transfers/infrastructure/adapter/driver/ktor/TransferHttpRoutesTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allousas/implementing-hexagonal-architecture/HEAD/src/test/kotlin/com/bank/transfers/infrastructure/adapter/driver/ktor/TransferHttpRoutesTest.kt --------------------------------------------------------------------------------