This project is a demo usage of the kstreamplify library that provides some ease for use for Apache Kafka Streams framework.
It implement the same use case as this example project
This project is under Apache 2.0 license.
Individuals wants to know when the next most efficient travel is planned for a specific connection (ex : DFW (Dallas) to ATL (Atlanta))
Four existing events are available to consume (We will use a Apache Flink® Datagen job) :
- CustomerTravelRequest : a new customer emit the wish for a travel on a connection
- PlaneTimeTableUpdate : a new plane as been scheduled or moved around
- TrainTimeTableUpdate : a new train as been scheduled or moved around
- Departure : a train or plane departed
We want to manage all those scenarios :
- The customer asks for an available connection : he receive an immediate alert
- The customer asks for an unavailable connection : he will receive a notification as soon as transport solution is available
- An existing customer request is impacted by new transport availability or timetable update : the customer will receive the new optimal transportation information
- An existing customer request is impacted by a transport departure
DISCLAIMER : We consciously chose to split Train & Plane timetable updates to challenge N-Ary reconciliation capabilities of both technologies. We are aware that all of this could have been simplified by merging those two events in one.
The current implementation of "most efficient" is currently : the available connection that will arrive the sooner.
We only added a data model for time table updates:
- Java 11+
- Maven 3.X
mvn clean package- Java 11+
- A consumer.properties & producer.properties files in your resource folder (here's a template)

