In this repo, you will find a bunch of useful code examples and patterns.
There are five branches in this repo:
- master - contains initial Spring 4 project with the working Chat application, integrated with Gitter Channel.
 - reactive - include completed migration to Spring 5 with the adaptation of blocking JDBC driver + integration with Server-Sent Event.
 - reactive+ws - include completed migration to Spring 5 with adaptation of blocking JDBC driver + integration with reactive WebSockets.
 - template - includes the template for migration to Reactive Spring 5 with Blocking Database adaptation. This repo prepared to code and contained the list of TODOs and FIXMEs. It will be useful if you would like to start coding with Spring 5 and learn essentials of Reactive Programming with Project Reactor. If you are not familiar with Reactor 3 or RxJava, please take a look on one of those useful tutorials, and practice your self with the next codding tutorial.
 - migration-commit-machine - commit by commit migration to Reactive Spring 5 + Non-blocking, reactive DB (MongoDB in that case).
 
This project is based on the typical layered architecture. It includes four main folders:
- controller - include list of endpoint for client-server communication purpose
 - services - include conceptual business logic:
- Integration with Gitter Service
 - Statistic service
 - Messaging service for transferring messages from Gitter service through the server, store messages in the database, etc.
 
 - repository - Spring Data repositories for data-access purpose
 - domain - database structure representation in Java classes.
 
You are free to create an issue if you found one in the project.