Skip to content

dbmdz/flusswerk-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flusswerk Application Example

Overview

This application demonstrates the Flusswerk framework in action. A Flusswerk application typically takes an incoming message from a RabbitMQ queue, does something, and then may send any number of messages to other topics for further processing.

The data processing logic is in DemoProcessor. Usually all kinds of things can go wrong when processing data: Data might be corrupt, backends fail,... Flusswerk provides a simple way to handle these error cases with special exceptions.

We simulate the three general error cases with the field issue in the incoming message:

Case Field value Behavior
No error, everything just works EVERYTHING_FINE (default) This is the usual case, everything works as expected, data is processed.
Temporary error TEMPORARY Sometimes there are issues that will resolve themselves, and we can try processing the message again later. A typical example would be a temporary network issue or an API service that is restarting.
Permanent error PERMANENT In some cases it is clear that trying again later won't make a difference, e.g. if the data is corrupt. Then we stop processing for good.

Try yourself:

To try yourself, get the repository and RabbitMQ-Server:

$ git clone https://github.com/dbmdz/flusswerk-example.git
$ cd flusswerk-example
$ docker-compose up -d

Then start the flusswerk-example Application from your IDE and open the RabbitMQ-Management UI at http://localhost:15672 (Login in as guest/guest).

Drop the following message into the queue incoming:

{ "id": "42" }

You now should find a message in the queue next.

Now try the error cases:

{ "id": "42", "issue": "TEMPORARY" }

and

{ "id": "42", "issue": "PERMANENT" }

About

Example Flusswerk application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

Languages