Skip to main contentIBM Garage Event-Driven Reference Architecture - Reefer Container Shipment reference implementation

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.

Target Audiences

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.

What you will learn

  • 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.

Build and Run

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:

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.