> For the complete documentation index, see [llms.txt](https://host2host.onibonje.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://host2host.onibonje.com/docs/12-glossary.md).

# Glossary

## A

**ACK (Acknowledgement)** Positive confirmation message sent to a partner after successful processing of their inbound file or API request. Format and delivery method are configured per partner in the database.

**Active-Active** Deployment pattern where multiple regional instances handle traffic simultaneously, providing high availability without a passive standby.

**API Gateway** Perimeter service (Kong, Apigee) that exposes REST/SOAP APIs to external partners with authentication, rate limiting, and TLS termination.

**Approval Policy** Database-defined rules (`approval_policy` + `approval_step_def`) that specify how many approval levels, which roles, and quorum (ANY, ALL, N-of-M) apply to a given entity type and scope. Resolved by `h2h-workflow` at submit time. See [40 Workflow Architecture](/docs/40-workflow-architecture.md).

## B

**BOM (Bill of Materials)** Maven POM (`h2h-bom`) that locks compatible versions of all internal JAR modules. Runtime imports the BOM to ensure version alignment.

**Bulk Payment** High-volume payment processing use case — typically salary payments or vendor payments submitted as batch files (CSV, XML) via SFTP.

**Broker-Delayed Scheduling** Pattern where scheduled operations are enqueued as durable delayed messages on Kafka or RabbitMQ (`x-delayed-message`), not in-process cron. Ensures delivery when the runtime returns after an outage. See [Extensibility Framework](/docs/14-extensibility-framework.md) §5.

## C

**CBS Base Library (`h2h-core-banking-api`)** Vendor-neutral core banking foundation — `CoreBankingIntegration`, canonical DTOs, provider registry. Finacle (`h2h-finacle-wrapper`) is one **CBS provider type**; others via `h2h-cbs-{vendor}`. See [43 Core Banking Integration API](/docs/43-core-banking-integration-api.md).

**Camel Context** Apache Camel runtime container that manages routes, components, and endpoints. Each runtime pod runs one Camel context with routes from all enabled JAR modules.

**Canonical Model** Internal standardized message format used between transformation and Finacle posting. All inbound formats (CSV, ISO 20022, XML) map to the canonical model.

**Channel** Communication method for H2H integration: **SFTP** (file), **HTTP** (REST/SOAP sync), **WebSocket** (real-time push), **MQ** (Kafka/JMS), or **signed URL**. Configured per partner in `channel_config`. See [47 Gateway Entry Points](/docs/47-gateway-entrypoints.md).

**Circuit Breaker** Resilience pattern that stops calling a failing service (e.g. Finacle) after a threshold of failures, allowing recovery time.

**Collections** Inbound payment use case — bills, taxes, utilities, direct debits collected from corporate clients or their customers.

**Config Resolver** Runtime service (`ConfigResolver`) that loads published integration profiles from the database cache for execution by Camel routes.

**Correlation ID** Unique identifier (`X-Correlation-Id`) assigned to every transaction, propagated across all system components for end-to-end tracing.

**Country Pack** Bundle of published database configuration for a specific country — transforms, rules, calendars, schedules. Not a code deployment.

**CustomizationProfile** Unified bundle of per-library customizations (security, file, observability, etc.) scoped to global, country, or partner. Resolved once and carried in `H2hContext`. See [Universal Library Extensibility](/docs/20-universal-library-extensibility.md).

**Cut-off** Time deadline after which transactions are rejected or queued for the next business day. Configured per partner/product with timezone and holiday calendar support.

## D

**Deployment-Agnostic** Same platform JARs run on **Kubernetes** (Profile A), **standalone JVM** on VM/systemd (Profile B), or **legacy WAR** on WebLogic/WebSphere/JBoss (Profile C). Docker and containers are optional — not a platform requirement. See [19 Cloud-Agnostic Deployment](/docs/19-cloud-agnostic-deployment.md).

**DLQ (Dead Letter Queue)** Kafka topic or queue (physical name from `event_channel_def` for `DLQ_MESSAGE`) where messages are sent after exhausting retry attempts. Operations team reviews and reprocesses DLQ items.

**Draft** Initial state of a configuration entity. Visible only in sandbox testing; not loaded by production runtime.

**Event Channel** Database row (`event_channel_def`) binding an `event_code` to a broker destination, scope (country, region, partner, module, service), and partition strategy.

**Event Code** Logical identifier (`PAYMENT_POSTED`, `CONFIG_PUBLISHED`) for platform events. Physical topic/queue names resolved from `event_channel_def` — not hardcoded. See [46 Database-Driven Events](/docs/46-database-driven-events.md).

## E

**ESB (Enterprise Service Bus)** Integration pattern for routing, transformation, and orchestration. Apache Camel fulfills this role in the platform.

**EAV (Entity-Attribute-Value)** Metadata pattern for custom attributes — definitions in `custom_attribute_def`, values in `custom_attribute_value`.

**Exchange (Camel)** Unit of message processing in Apache Camel. Carries the message body, headers, and properties through a route.

**Extension Entity** JSON-schema-defined custom tabular data scoped to a partner or country. Stored in `extension_entity_row`.

**STP (Straight-Through Processing)** Automated end-to-end transaction processing without manual intervention.

**ExtensionProvider** SPI interface each platform library implements to register extension points, validate customization blocks, and contribute defaults.

**ExtensionRegistry** Central catalog (`h2h-extension-kernel`) of all extension points across every library — drives admin UI and publish validation.

## F

**FCJ (Finacle Core Java)** Finacle's Java-based API framework for core banking operations.

**FCUBS (Finacle Core Unified Banking Solution)** Finacle's web services layer for banking operations.

**Finacle Wrapper** JAR module (`h2h-finacle-wrapper`) that implements `CoreBankingIntegration` via `FinacleCoreBankingIntegration`, hiding FCJ and FCUBS behind the injectable [Core Banking Integration API](/docs/43-core-banking-integration-api.md).

**Core Banking Integration** Technology-agnostic interface (`CoreBankingIntegration` in `h2h-core-banking-api`) injected into route modules and the Finacle wrapper. Finacle is the default implementation; mock and alternate CBS adapters implement the same contract.

**Flyway** Database migration tool used in `h2h-config-store` for versioned schema management.

## H

**H2H (Host-to-Host)** Direct system-to-system integration between the Bank and its corporate/institutional clients, bypassing manual channels.

**Holiday Calendar** Database entity defining non-business days per country, used by cut-off and scheduling logic.

## I

**Idempotency** Property ensuring that processing the same transaction multiple times produces the same result without duplicate effects. Implemented via idempotency keys stored in Redis/PostgreSQL.

**Integration Profile** Database entity binding a partner to a complete processing definition: route template, transforms, rules, ACK template, and channel config.

**ISO 20022** International standard for electronic data interchange between financial institutions (pain, pacs, camt message types).

## J

**Job Def** Database entity (`job_def`) defining a scheduled operation — script, SQL task, Camel route, or HTTP callback — with schedule expression and scope. Fired via **broker-delayed messages** (Kafka / RabbitMQ), not in-process cron.

**JOLT** JSON-to-JSON transformation library used as one of the transform engines. Mapping specifications are stored in the database.

**JSONata** Query and transformation language for JSON data, used as an alternative transform engine.

## K

**Kafka** Apache Kafka event streaming platform used as the messaging backbone for audit events, config invalidation, DLQ, and async processing.

**Keycloak** Open-source identity and access management used for SSO, RBAC, and partner authentication.

## L

**Low-Code** Approach where administrators configure integration behavior (mappings, rules, flows) through a visual portal rather than writing code. Configuration is stored in the database.

## M

**Maker–Checker (Four-Eyes)** Segregation-of-duties pattern: the user who creates or submits a change (maker) cannot approve it (checker). Enforced by `h2h-workflow` / `MakerCheckerDelegate`, not UI-only. See [40 Workflow Architecture](/docs/40-workflow-architecture.md).

**MT940** SWIFT standard for end-of-day account statements. Platform generates and delivers MT940 files to partners.

## N

**NACK (Negative Acknowledgement)** Rejection message sent to a partner when their inbound file or transaction fails validation or processing.

**Notification Provider** Third-party adapter implementing `NotificationProvider` SPI — delivers email (SES, SendGrid, SMTP), SMS (Twilio, Africa's Talking, Termii), Slack, or push. Selected by `notification_provider_def.provider_code` in the database. See [48 Utility & Notification Integrations](/docs/48-utility-notification-integrations.md).

## O

**OPA (Open Policy Agent)** Optional policy engine for expressing routing and authorization rules as declarative policy data.

## P

**Partner Portal** External-facing self-service interface for corporate clients to view transaction status, download ACKs, and access API documentation.

**Persistence SPI** **Persistence SPI** Database abstraction layer (`h2h-persistence-spi`) enabling the **database-agnostic application** — portability across PostgreSQL, Oracle, and SQL Server without JAR changes. See [45 Database-Agnostic Persistence](/docs/45-database-agnostic-persistence.md).

**PGP (Pretty Good Privacy)** Encryption standard used for securing file transfers. Partners encrypt files with the Bank's public key; platform decrypts with private key from Vault.

**Publish** Action that transitions a configuration entity from `DRAFT` or `PENDING_APPROVAL` to `PUBLISHED`, making it visible to the production runtime.

## R

**RBAC (Role-Based Access Control)** Access control model scoped by organization → country → partner → product → environment. Implemented via Keycloak roles and permissions.

**Reconciliation** Process of matching outbound payments with settlement confirmations and resolving discrepancies.

**Route Template** Database-defined sequence of processing steps (step codes) that Camel executes for a given message type. Composed in the flow designer.

**Rolling Deploy** Kubernetes deployment strategy where JAR updates are deployed by replacing pods incrementally with zero downtime.

## S

**Script Def** Database entity (`script_def`) storing an admin-defined script (Groovy, JavaScript, JSONata) executed as a route step or job.

**Sandbox** Non-production environment where partners test integrations before go-live. Sandbox configs are isolated from production.

**SPI (Service Provider Interface)** Java extension contract (`h2h-extension-api`) for registering custom step types, script engines, job executors, and adapters via plugin JARs.

**SQL Task** Pre-approved, versioned SQL operation (`sql_task_def`) executed by broker-delayed jobs — not arbitrary admin SQL.

**SFTP (SSH File Transfer Protocol)** Secure file transfer protocol used for inbound/outbound file exchange with partners.

**Step Code** Identifier (e.g. `PGP_DECRYPT`, `FINACLE_POST`) mapping a database route step to a Java processor bean in the `StepRegistry`.

**Step Registry** In-code mapping of step codes to Camel processor implementations. Database selects which steps run; registry provides the implementation.

**Superseded** Configuration version state indicating a newer published version has replaced this one. Retained for audit and rollback.

## T

**Transform Spec** Database entity defining a data mapping: source format, target format, engine (JOLT/JSONata/XSLT), and specification body.

## V

**Vault (HashiCorp Vault)** Secrets management system storing all credentials, keys, and certificates. Database stores only Vault path references.

## W

**WebSocket Entry Point** Real-time partner ingress (`channel_type: WEBSOCKET`) for server-push status, ACK notifications, and alerts. Subscriptions in `websocket_subscription` bind `event_code` values to active sessions. See [47 Gateway Entry Points](/docs/47-gateway-entrypoints.md).

**Wrapper JAR** Reusable module that encapsulates integration with an external system (Finacle, SFTP, Kafka) behind a clean API and optional Camel component.

## See Also

* [Design Patterns](/docs/13-design-patterns.md) — pattern catalog with module mappings
* [Extensibility Framework](/docs/14-extensibility-framework.md) — custom tables, scripts, jobs, DB portability
* [File Management System](/docs/15-file-management-system.md) — SFTP, buckets, signed delivery
* [Security Library](/docs/16-security-library.md) — crypto and secrets module
* [Monitoring and Logging](/docs/17-monitoring-and-logging.md) — observability module
* [Execution Context](/docs/18-execution-context.md) — H2hContext framework
* [Cloud-Agnostic Deployment](/docs/19-cloud-agnostic-deployment.md) — K8s and multi-cloud
* [Universal Library Extensibility](/docs/20-universal-library-extensibility.md) — cross-solution customization
* [Event-Driven Runtime Extensibility](/docs/21-event-driven-runtime-extensibility.md) — Kafka and runtime handlers
* [Use Cases and Solutions](/docs/22-use-cases-and-solutions.md) — scenarios mapped to fixes and docs


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://host2host.onibonje.com/docs/12-glossary.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
