demos/kafka/demos-kafka-payment-system-transfer
3 years agoIgnoring poision pills with illeagal state-changes
Kai Moritz [Sun, 20 Jun 2021 11:59:00 +0000 (13:59 +0200)]
Ignoring poision pills with illeagal state-changes

3 years agoImplemented state-change logic
Kai Moritz [Sat, 19 Jun 2021 15:36:49 +0000 (17:36 +0200)]
Implemented state-change logic

3 years agoMoved TransferService into package ports
Kai Moritz [Sat, 19 Jun 2021 12:51:25 +0000 (14:51 +0200)]
Moved TransferService into package ports

3 years agoMoved all business logic into TransferService
Kai Moritz [Sat, 19 Jun 2021 08:53:31 +0000 (10:53 +0200)]
Moved all business logic into TransferService

3 years agoAutomatically rebuild the state after a crash / restart
Kai Moritz [Tue, 15 Jun 2021 18:27:20 +0000 (20:27 +0200)]
Automatically rebuild the state after a crash / restart

* Turning of enable.auto.commit and setting auto.offset.reset to earliest
  does the trick in this setup.
* Since no offset-commits are made, all events are re-read on startup.
* The TransferConsumer uses a special instance of TransferService, that
  is initialized with a NoOpMessageService, to replay the restored
  events without generating new events.

3 years agoIntroduced different Events for the creation and the state-changes
Kai Moritz [Sat, 19 Jun 2021 07:11:08 +0000 (09:11 +0200)]
Introduced different Events for the creation and the state-changes

3 years agoTransferConsumer logs the number of polled records only, when positive
Kai Moritz [Fri, 18 Jun 2021 14:56:57 +0000 (16:56 +0200)]
TransferConsumer logs the number of polled records only, when positive

3 years agoTransferController sends a message, instead of calling TransferService
Kai Moritz [Sat, 19 Jun 2021 07:08:24 +0000 (09:08 +0200)]
TransferController sends a message, instead of calling TransferService

3 years agoTransferRepository does not need any synchronization
Kai Moritz [Sun, 13 Jun 2021 21:40:56 +0000 (23:40 +0200)]
TransferRepository does not need any synchronization

* Only TransferService stores data in the repository
* Since alle instances of Transfer, that are handled by TransferService
  are received through a single topic, no synchronization is needed at
  all in the repository.
* This is, because records, that are received from a topic are guaranteed
  to be processed one after the other.
* The topic simply is the single source for processing requests and a
  KafkaConsumer never handles multiple records in parallel.
* Note: This implementation is not ready to run on multiple threads or
  nodes!

3 years agoPrepared for development of version 1.1.0
Kai Moritz [Tue, 15 Jun 2021 21:30:44 +0000 (23:30 +0200)]
Prepared for development of version 1.1.0

3 years agoReleased version 1.0.0
Kai Moritz [Sat, 19 Jun 2021 15:40:50 +0000 (17:40 +0200)]
Released version 1.0.0

3 years agoThe build of the docker-image is not triggerd automatically
Kai Moritz [Sun, 13 Jun 2021 11:56:28 +0000 (13:56 +0200)]
The build of the docker-image is not triggerd automatically

3 years agoAdded config/assets to build a docker-image
Kai Moritz [Sun, 13 Jun 2021 09:26:00 +0000 (11:26 +0200)]
Added config/assets to build a docker-image

3 years agoMVP for transfer service
Kai Moritz [Fri, 11 Jun 2021 11:17:02 +0000 (13:17 +0200)]
MVP for transfer service