Justice and Public Safety Sector Red Hat Integration POC repository
This Proof of concept (POC) project explores implementing the following areas of integration using Red Hat Integration Tool Kit:
-
- Comprehensive connectors
- Microservices orchestration
- Data Transformation
- Low-code iPaaS
- Kubernetes connectivity with Camel K
- Red Hat Integration
- Red Hat GitOps
- Configuring Service Registry authentication and authorization with Red Hat Signle Sign-On
This POC project will use the following Red Hat Integration Tools to implement:
- Compute: Camel K
- Event Broker: Red Hat AMQ Streams (Kafka)
- Service and Schema Registry: Red Hat Service Registry (Apicur.io)
- Apache Kafka Architecture - Delivery Guarantees
- at most once - which can lead to messages being lost, but they cannot be redelivered or duplicated
- at least once - ensures messages are never lost but may be duplicated
- exactly once - guarantees each message processing (not delivery) happens once and only once
- Should You Put Several Event Types in the Same Kafka Topic?
- GitHub Repo: Seating Manifests by Gerald Nunn
- GitHub Repo: Camel K: Event Streaming Example (Discussed at POC kick off)
- GitHub Gist: OCP Serverless | Knative - Demo Scripts by Evan Zhang
- GitHub Repo: OpenShift Integration/camel-k-example-basic
- GitHub Repo: Apache Camel K - Kafka Example
- GitHub Repo: Camel K Example Kafka by Evan Zhang - This demonstrates how to use Service Registry to serialize and deserialize events in a given topic
oc run kafkacat -it --rm --restart=Never --image=edenhill/kafkacat:1.6.0 --command – /bin/sh alias kafkacat='oc exec kafkacat -it -- kafkacat' kafkacat -b cmn-kafka-kafka-bootstrap:9092 -t my-topic -C
Note: Need to run this in a real Linux shell; e.g. a Windows Subsystem for Linux (WSL) session, rather than a Git Bash (emulation) session
This POC will implement a simple set of court case management (CCM) services. Specifically, the POC will cover the following two services:
- Notification Service
- Lookup Service
Below is the system context diagram for the DEMS Integration POC where the following event-based solution is implemented using Red Hat Integration toolkit:
-
Actors
- JUSTIN System
- DEMS User
-
Events / Commands
- Court Case Created
- Get Court Case Details
-
Domain Services
- Notification Service
- Lookup Service
-
Event Topics
- Court Cases
- KPIs (no personal information)
- Audits
The POC is comprised of the following integration and common components
Component ID | Component Description | Integration Component Type |
---|---|---|
ccm-justin-mock-app | CCM JUSTIN Mock Application | Mock Enterprise Application |
ccm-justin-utility-adapter | CCM JUSTIN Utility Adapter | Enterprise Application Integration Outbound Interface |
ccm-dems-edge-adapter | CCM DEMS Edge Adapter | Enterprise Application Integration Inbound Gateway Interface |
ccm-dems-mock-app | CCM DEMS Mock Application | Mock Enterprise Application |
ccm-notification-service | CCM Notification Service | Domain Stream Processor |
ccm-lookup-service | CCM Lookup Service | Domain API Interface |
cmn-kafka | Common Kafka Event Server | Common Service |