Includes features such as:
- Account
- Transaction
- AccountRepository
- TransactionRepository
- AccountService
- Custom exceptions
- JUnit tests
- Concurrency-safe deposit / withdraw / transfer
- Basic idempotency
- The service owns the business rules.
- The repository stores data.
- The domain objects represent business concepts.
- Tests prove the behavior.