The Foundation of the Fund System: Introducing the Spring Boot Starter Library 'barcelona'
Key point
KakaoBank has released an in-house Spring Boot Starter called 'barcelona' that bundles common functions for the fund system.
Details
KakaoBank's Investment/Forex Technology Team built the fund ledger as an independent Spring Boot system in a cloud native environment, rather than attaching it to the existing core banking system.
In the process, to reduce repetitive initial setup and common functionality, they created an in-house Starter library called 'barcelona'. The core idea is that adding just one line of dependency lets each project immediately use the foundational features it needs.
barcelona follows the typical Spring Boot Starter structure and is divided into three modules: starter, autoconfigure, and context.
- starter: bundles only the dependencies
- autoconfigure: automatically registers Beans based on conditions
- context: handles the core implementation logic
Through this structure, they standardized the banking domain's common functions needed for the fund system. Configuration and logic that used to be implemented separately in each project were absorbed into a common library, improving development productivity and maintainability.
One representative feature is FixedLength message processing. Rather than exchanging objects directly like JSON, it targets the traditional financial message format that interprets fields by position and length, allowing serialization and deserialization to be automated simply by attaching annotations such as @FixedLengthCharacter. This was implemented using Jackson Module extensions, via JsonSerializer, JsonDeserializer, and Module.
Another pillar is HTTP Client abstraction. To reduce the repetitive configuration involved in internal API calls, they provide a common Client, and separate out the necessary additional processing into a ClientHandler system based on the Chain of Responsibility pattern. Department verification, employee authorization verification, transaction audit logging, and the actual API call are each designed to be managed as separate Handlers.
Finally, by leveraging distributed tracing and Baggage, they made it possible to trace the flow of requests spanning the channel system, account system, and core banking. This reflects the awareness that as systems become more separated, it becomes harder to identify root causes from logs alone, making an observability system that doesn't lose track of causal relationships between services important.
Ultimately, barcelona has established itself as an in-house foundational library that reduces repetitive work in fund system development and naturally abstracts banking-domain-specific communication, tracing, and verification requirements within the Spring ecosystem.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.