From CZZ to ERP

Multi-module Spring Boot projects for processing comerzzia integration messages and sending them to external ERP systems through different messaging technologies.

Purpose

Processing layer for the comerzzia to ERP integration ecosystem:

  • Consumes data from various message sources (Kafka, Pub/Sub) - optional, configurable

  • Polls comerzzia database for pending documents

  • Validates and transforms outgoing messages

  • Sends data to external ERP systems via HTTP

  • Provides monitoring and comprehensive error handling with retry logic

Processing Flow

Messages are polled from comerzzia database, published to messaging systems, consumed with retry logic, and sent to external ERP systems via HTTP.

Diagram

Technologies

  • Java 8+

  • Maven 3.6+

  • Spring Boot 2.7.18

  • Spring Integration

  • Micrometer & Prometheus: Metrics and observability

  • Jackson: JSON/XML processing

Applications implementations

Kafka Processor

Asynchronous processing via Apache Kafka topics with retry logic and DLQ.

Pub/Sub Processor

Asynchronous processing via Google Cloud Pub/Sub topics with retry logic and DLQ.

Common library for processing control services

Java JAR library. Shared utilities, models, and business logic. Processor Common Library Module

Supported Entities

All modules process the following comerzzia entities:

Entity Description

tickets

Sales tickets (etickets)

cashjournal

Cash journal closures

OpenAPI REST API Documentation

Observability / health check

  • Spring Boot Actuator

    • Health checks, metrics, and application info endpoints

    • Prometheus metrics export

  • Monitor-UI embedded

Common Configuration

Environment Variables

Required for all modules:

uidActividad=<comerzzia_activity_uid>

Database Configuration

All modules require comerzzia database configuration via comerzzia.xml in java classpath or in COMERZZIA_HOME path.

Error Handling

All modules include comprehensive error handling with:

  • Configurable retry logic

  • Dedicated DLQ topics for failed messages

  • Error tracking in database with full context

  • Timeout protection

  • Graceful shutdown with executor cleanup