Enterprise API Layers
Enterprise API Layers is Afreximbank Digital Solutions' API-Led Connectivity platform — a Quarkus + Apache Camel (Java 21) monorepo that re-architects the bank's backend estate into a standards-based three-layer API model. Layers talk to each other synchronously over gRPC and asynchronously via Kafka domain events, with Apache APISIX as the external gateway translating REST/JSON into gRPC.
:::note Implementation status
This repository is a working scaffold, not a finished system. The build, Jib
container images, infrastructure, and the local-Kubernetes deploy flow are real
and verified. Of the 16 service modules, only cbs-finacle-sapi (the Finacle
core-banking adapter) is substantively implemented today — the rest are
skeletons, and most of the gRPC contracts and Avro event schemas are still to be
authored. Treat module lists below as the target structure.
:::
The three-layer model
| Layer | Directory | Modules | Role |
|---|---|---|---|
| Experience APIs (XAPI) | experience-apis/ | 3 | Channel-facing REST/OpenAPI; consume Process APIs over gRPC |
| Process APIs (PAPI) | process-apis/ | 5 | Business orchestration (saga, scheduling, documents); own persistence |
| System APIs (SAPI) | system-apis/ | 8 | Adapters wrapping external systems of record (Finacle, Salesforce, SWIFT, …) |
| Shared | shared/ | 4 | proto-definitions, avro-schemas, domain-events, apisix-registry |
Requests flow Experience → Process → System in one direction over gRPC; business events flow across all layers over Kafka.
Why API-Led Connectivity
- Separation of concerns — channels (XAPI), business logic (PAPI), and systems of record (SAPI) evolve independently behind stable contracts.
- Contract-first — gRPC/Protobuf between layers; APISIX exposes a REST/JSON
facade externally via its
grpc-transcodeplugin. - Reuse — a System API (e.g. the Finacle adapter) is written once and reused by every Process API that needs core-banking data.
- Event-driven — domain events (Avro on Kafka/Redpanda) decouple side-effects from the request path.
Where to go next
- Architecture — the full layer/module breakdown, request and event flow, the APISIX self-registration model, and the build/deploy flow.