https://github.com/emmanuelsilva/akka-money-transfer
Microservice reactive bank using Akka + Scala + Java + Kafka
https://github.com/emmanuelsilva/akka-money-transfer
actor akka asynchronous bank-account event-sourcing kafka ledger microservice scala transfer-money
Last synced: 4 days ago
JSON representation
Microservice reactive bank using Akka + Scala + Java + Kafka
- Host: GitHub
- URL: https://github.com/emmanuelsilva/akka-money-transfer
- Owner: emmanuelsilva
- License: mit
- Created: 2020-06-29T23:26:17.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-14T00:20:05.000Z (about 4 years ago)
- Last Synced: 2025-06-24T13:11:12.373Z (4 months ago)
- Topics: actor, akka, asynchronous, bank-account, event-sourcing, kafka, ledger, microservice, scala, transfer-money
- Language: Scala
- Homepage:
- Size: 313 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Microservice reactive bank
Project to learn and put in practice some concepts such as the actors model, CQRS and asynchronous microservices by simulating a bank account which users can transfer money through P2P transactions.
## Architecture & technical details
* * *

Experimented technologies
- Akka
- Scala
- Kafka
### Service communication
* * *
The main objective is that all write messages exchanged by every microservice must be asynchronous.
The Kafka is used to make asynchronous communication possible and create an agnostic layer to isolate the technology chosen for each microservice from the external world.
### Services
* * *
#### Ledger
* * *
The ledger was written using the actors mode in order to simplify the concurrent model. That means every account is an actor who knows how to
change your mutable state in a thread-safe way.
## Contribution guidelines
* * *
* Write unit test for each actor message
* Write integration test for each exposed API endpoint
* Scala 2.13 best practices
* Reactive principles
* Be asynchronous