Reefer Container Shipment reference implementation
The IBM Event-Driven Architecture (EDA) reference implementation illustrates the deployment of real-time analytics on event streams in the context of container shipment in an event-driven architecture with event backbone, functions as a service, and microservices. It aims to illustrate the different event-driven patterns — like event sourcing, CQRS and the Saga pattern — through the use of best practices amd event-driven microservice implementation.
You will be greatly interested by the subjects addressed in this solution if you are:
- an architect, as you will get a deeper understanding on how all the components work together, and how to address resiliency & high availability.
- a developer, as you will get a broader view of the solution end-to-end and starter code, as well as insight into practices to reuse during your future implementations.
- a project manager, as you will understand all the artifacts required to develop an EDA-based solution and what is required to perform overall project estimation.
- How to apply the event storming methodology and workshop to analyze the business process for fresh good shipment over sees.
- How to transform Domain Driven Design aggregates to microservices.
- How to implement the different microservices using various event-driven patterns, like CQRS and event sourcing, leveraging Apache Kafka.
- How to deploy your solution to IBM Cloud Kubernetes service (Public Cloud) or Red Hat OpenShift Container Platform anywhere (Private Cloud).
- How to use event store (Kafka topics) as source for machine learning data source to build training and test sets.
- How to implement a Test Driven Development for the Order microservice uisng mockito to avoid Kafka dependency.
The end-to-end solution can be demonstrated from a unique user interface and it involves multiple microservices deployed independently. As some of those components are using IBM products or IBM Cloud services by default, you will need to provision these services ahead of time. However, the components of the reference implementation can be deployed into any Kubernetes-based environment and communicate via any Apache Kafka-based event backbone.
Minimal prerequisites for this reference implementation are:
- IBM Event Streams on Cloud or Event streams within IBM Cloud Pak for integration or a Kafka Strimzi Docker image.
- Kubernetes Cluster - You can use Red Hat Openshift or Kubernetes via the IBM Cloud Kubernetes Service.
- Databases for PostgreSQL - This database is used by the optional Container Management microservice. We want to illustrate with this implementation a reversibility practice where we start development on the cloud and migrate to private cloud.
- Streaming Analytics on IBM Cloud or through the IBM Cloud Pak for Data.
Each project has its own installation explanations and scripts to build, package, test, and deploy to the different deployment environments. These are all detailed in-depth in the respective Microservices Details pages, as well as our DevOps and GitOps practices.
To get started as quickly as possible, follow our Quickstart Tutorial.