Skip to content

Applications Overview

Overview of application components in the RCIIS (Regional Customs Interconnectivity Information System) platform.

Architecture

The platform consists of two main systems:

  1. RCIIS Application - Core business application (API + Frontend)
  2. ESB (Enterprise Service Bus) - Integration middleware for external system connectivity
graph TB
    subgraph "External Systems"
        EXT1[Customs Authorities]
        EXT2[Trade Partners]
        EXT3[Banking Systems]
    end

    subgraph "ESB - Enterprise Service Bus"
        APISIX[APISIX Gateway]
        KAFKA[Kafka Cluster]
        CAMELK[Camel-K Transformers]
        KEYCLOAK[Keycloak Auth]

        APISIX -->|HTTP Bridge| KAFKA
        KAFKA --> CAMELK
        APISIX -.->|Auth| KEYCLOAK
    end

    subgraph "RCIIS Application"
        API[RCIIS API]
        FE[RCIIS Frontend]
        DB[(SQL Server)]
        MINIO[MinIO Storage]

        FE --> API
        API --> DB
        API --> MINIO
    end

    EXT1 --> APISIX
    EXT2 --> APISIX
    EXT3 --> APISIX
    CAMELK --> API
    CAMELK --> EXT1
    API -->|Outbound| APISIX

RCIIS Application

The core business application for customs data processing.

RCIIS API

  • Purpose: Core business logic and data processing
  • Technology: .NET Core, SQL Server
  • Features: Declaration processing, validation, document management

RCIIS Frontend

  • Purpose: User interface for customs operations
  • Technology: Web-based UI
  • Features: Declaration entry, status tracking, reporting

Supporting Services

  • MinIO: Document and file storage (S3-compatible)
  • Kafka UI: Cluster management interface

ESB - Enterprise Service Bus

The ESB provides message-oriented middleware for integrating external systems with RCIIS.

ESB Components

Component Role Technology
APISIX Gateway Entry point for all external requests Apache APISIX
Kafka Message broker with topic-based routing Strimzi/Kafka
Camel-K Message consumer and transformer Apache Camel
Keycloak Authentication and authorization Keycloak

ESB Message Flow

1. External System → APISIX Gateway (authenticated request)
2. APISIX Route → Kafka HTTP Bridge → Dedicated Topic
3. Camel-K Consumer ← Kafka Topic
4. Camel-K Transform → Target Endpoint (RCIIS API or External)

Inbound Flow (External → RCIIS)

  1. External system sends request to APISIX Gateway
  2. APISIX authenticates via Keycloak and routes to Kafka HTTP Bridge
  3. Message lands on a dedicated Kafka topic (one per route/integration)
  4. Camel-K consumes from topic, transforms message format
  5. Camel-K sends transformed data to RCIIS API

Outbound Flow (RCIIS → External)

  1. RCIIS API sends data to APISIX Gateway
  2. APISIX routes to appropriate Kafka topic
  3. Camel-K consumes, transforms to external system format
  4. Camel-K delivers to external system endpoint

Topic Strategy

Each integration route has a dedicated Kafka topic: - customs.inbound.declarations - customs.outbound.responses - banking.payment.requests - logistics.shipment.updates


Service Catalog

Service System Technology Purpose
RCIIS API RCIIS .NET Core Core business logic
RCIIS Frontend RCIIS Web UI User interface
APISIX ESB Apache APISIX API gateway
Kafka ESB Strimzi/Kafka Message broker
Camel-K ESB Apache Camel Message transformation
Keycloak ESB Keycloak Identity management
MinIO RCIIS MinIO Object storage
Kafka UI Operations Web UI Kafka management

Deployment Strategy

Environment Progression

  1. Local: Developer environments (Kind clusters)
  2. SQAT: System QA Testing at Magna BC
  3. Testing: UAT at EAC client site
  4. Prod: Production on EAC cluster

Deployment Patterns

  • Blue-Green deployments for zero downtime
  • Feature flags for runtime toggling
  • Quick rollback to previous versions