Skip to main content

Anatomy Of The Consumer

The consumer artifact consists of three important files which are all required for it to function properly.

Required Files

FileDescription
solifi-consumer-<version>.jarThe Java archive containing the consumer application
license.licenseThe license file provided by LimePoint
sign256.signThe signature file provided by LimePoint
application.ymlConfiguration file that controls consumer behavior

The Consumer Application

The consumer application includes built-in functionality to manage backend database schemas:

  • Automatic table creation - Creates a table for each topic you configure
  • Audit table support - Optionally creates accompanying audit tables
  • Dynamic schema management - Tables are adjusted based on the messages received
  • Topic-specific processing - Only creates/modifies tables for topics specified in application.yml
Example

While the ILS application may have over 600 topics, if only 10 topics are listed in your application.yml file, the consumer will create tables for just those 10 topics.

Architecture Changes (Version 2.x)

Version 1 of the consumer relied on SQL files to manage database tables. This approach had some key limitations, as any schema changes in the upstream Solifi broker required a new version release to stay aligned.

From version 2.x onward, the consumer architecture was restructured:

  • ❌ No longer ships SQL files
  • ✅ Detects required schemas from the Schema Registry
  • ✅ Dynamically creates or updates tables in the backend database
First Run Behavior

When running the consumer for the first time, you might see errors in the logs related to table creation. These can be safely ignored, as they are caused by multiple threads attempting to create the same table simultaneously.

Configuration Overview

The behavior of the consumer is controlled through the application.yml file. This file instructs the consumer on:

  • Which brokers to read data from
  • Which backend database to persist data to
  • How many threads to run
  • Which topics to consume
  • Auditing preferences
  • And more...

For detailed configuration options, see Understanding Application.yml.

Next Steps