Case Study

Adding Real-Time Stream Processing to Promote Offers at the Right Time

Like any other business, banks need strong marketing efforts combined with IT resources to expand their revenue opportunities. With the many beneficial financial products they have to offer to their customers, they need to rely on data for driving an efficient means for promotion. Customers might not know all of their options, and maybe more importantly, might not know they should be looking for more options. To get customers to explore solutions to their financial needs, it is especially important to present products at the right time. The timing not only increases the likelihood of customer engagement, but also avoids making customers feel spammed with sales pitches that are irrelevant to their needs.

The challenge is how to identify the right time for any given product promotion. The simple answer to this is to offer a product at the time the customer is most likely to need that product. To do this, a bank needs IT infrastructure that responds in a real-time manner to customer interactions, and use of modern stream processing technologies is a great way to add that capability. But that presents another challenge – how to add stream processing to your existing infrastructure to create an event-driven architecture, all in a cost-effective way.

How BNP Paribas Bank Polska uses an event-driven architecture to increase revenue opportunities.


BNP Paribas Bank Polska, which has been listed on the Warsaw Stock Exchange since 2011 is a member of the BNP Paribas banking group whose footprint spans 71 countries. In Poland, as a universal bank with a global reach, it provides services to retail customers and other segments including Wealth Management, microbusinesses, SMEs and corporate banking. As it advocates green initiatives, BNP Paribas Bank Polska supports its clients in the transition to a low carbon economy, endeavors to curtail the adverse impact of its operations on the natural environment and inspires clients to make good financial decisions. The Bank has provided funding for more than 20,500 households to install photovoltaic panels. The Bank also consistently pursues its strategy of financing businesses in Poland while also supporting investments of strategic importance to the country with a positive social, economic and environmental impact.

At the same time, the Bank is efficiently digitalizing banking processes by rolling out innovative solutions in its internet and mobile banking platforms: GOonline and GOmobile. By taking into consideration the growing need for remote access to services, the Bank has made it possible for clients to open an account using a selfie. The Bank also enables clients who appreciate the opportunity to hold a face-to-face meeting with an advisor to schedule an appointment in a branch through the Booksy app. BNP Paribas Bank Polska is constantly adapting its branches to serve all its clients. For instance, it offers the assistance of a sign language interpreter free of charge in its branches and through the hotline.

BNP Paribas Bank Polska proactively addresses socially important topics such as the role played by women and their growing responsibility in society and at work; it openly and sensitively promulgates diversity while pursuing activities to involve employees and the overall market. The Bank is socially engaged through its educational efforts ranging from giving smart assistance to environmentally friendly solutions, to the Class program and sponsoring activities. The latter focus on promoting tennis and culture, especially the cinema.

Corporate social responsibility, one of the Bank’s key values, is deeply embedded in its culture and pertains to how it cultivates relationships with its employees and local communities. Bank employees take part in many initiatives giving them an opportunity to change the world on a day-to-day basis. The constantly growing number of employee volunteers was one of the factors that contributed to the Bank becoming a strategic partner in the Noble Package (Szlachetna Paczka) project, including support for this organization’s operations and advancing the idea of extending thoughtful help.

The BNP Paribas Bank Polska IT Team

The IT team of BNP Paribas Bank Polska had success using Hazelcast for application acceleration in other use cases in the bank (see the earlier case study, Maintaining an Online Edge in Today’s Highly Competitive Banking World), so the opportunity to use the stream processing capabilities of Hazelcast made sense. They had technical experts across many job responsibilities, including architecture definition, technology recommendation, standards definition, research, development, systems integration, and DevOps, so they were well prepared to add new capabilities to enhance the business. This team is accustomed to working on big picture initiatives that address much more than the immediate need. In this particular initiative, they built a system that grew a revenue channel in the short term, and also established a foundation for many future use cases that depend on timely response to customer interactions.

“When we started, we didn’t know if the system could support the different types of business logic and the expected campaign volumes for this to be a viable effort. But it was easy and relatively cheap to get started to see how the software could work. And we obtained good results, as the offer conversion rate is 4 times higher than before and the campaigns are profitable.”

— Szymon Domagala, Enterprise Architect, BNP Paribas Bank Polska S.A.


The business challenge they faced was to increase the adoption of its products to its customer base. The bank’s marketing team identified a set of responses to specific customer situations, which would result in an offer for an upsell/cross-sell product. One straightforward offer would be to promote personal loans to any customer whose bank account balance was low and could not provide the requested amount of cash via an ATM. The “error” notification was captured by the bank, so it was theoretically easy to quickly respond with the right offer to the customer. The marketing team expected that a timelier response would be advantageous for increasing customer conversions, so they turned to the IT team for help.

The team had built an elaborate architecture consisting of a services-oriented architecture (SOA) and an enterprise service bus (ESB) that drove data flows across the bank’s operations. All client-facing and back-office applications were linked via the SOA bus. This architecture was the backbone of their IT infrastructure and had been operating very reliably for the bank for several years. Similar to their previous use cases that incorporated Hazelcast, they wanted to retain all of the existing work, and only add components where necessary to add new business capabilities. This was important to ensure they added no major risk of disruption to their existing operations, considering that everything was already working well. However, the batch-oriented infrastructure based on CRM and data warehouse technology meant that it would typically take up to two days to present the customer with an offer. This would not meet the marketing team’s requirements on timely responsiveness.


With their successes with Hazelcast in their prior use cases, it made sense for the team to try Hazelcast in this new initiative. As a fast and easy to use stream processing engine, Hazelcast was a natural fit for plugging into their publish/subscribe messaging bus, turning their environment into an event-driven architecture. This would give them the ability to act on events in real time, especially since they were already capturing information about customer interactions.

The data about each interaction (“event”) would not necessarily have a complete view of the customer. It might have customer account information and transaction details, but other information such as customer name and phone number were not included. But this was not an issue since Hazelcast was used as a high-speed customer account and product information repository, which provided enrichment data to create that complete view. This data was sourced by the bank’s mainframe computers, and was used across the many different banking channels, including mobile and web.

As event data was read by Hazelcast, it was enriched with data lookups in the in-memory data store in a very fast way. This provided the context necessary to make better decisions on how to respond to the customer. The enriched event could then be published back to the bus for downstream processes to use. One example of a downstream action is sending the customer an SMS message about a product offer, which could be sent immediately after the event, if desired by the bank. This implementation gave the marketing team the ability to decide when to contact the customer. The SMS messaging option provided a communications channel that seemed to deliver more relevant and timely information than email. This is especially true if messages can be sent soon after a customer interaction with the bank.

One other aspect of their implementation helped to speed time-to-market for future marketing promotions. The IT team implemented a module that runs within the Hazelcast streaming engine that executes promotion rules written in the Python programming language. This was valuable because there were members of the marketing team who could code in Python, so they were empowered to create the business logic for the promotions. This allowed them to run campaigns as they wished, and freed the IT team from having to provide support in getting promotions implemented into the system.

While the real-time promotion use case was the primary driving force behind the implementation of Hazelcast, another use case with great potential arose. The team essentially built a transaction tracking and aggregation system that could perform business logic written in Python, which opened up more opportunities for real-time processing. Originally, every event in the system, including request/response events, represented a single transaction. With the new infrastructure, they could filter, correlate, aggregate, enrich, and rewrite the many related individual events, typically to consolidate them into a single, all-encompassing event that was published back to the bus. This gave them the ability to take action on events at a holistic level, which gave them the context on what the customer was trying to do. For example, rather than merely reading an isolated event data point regarding card insertion into an ATM, they now could generate a complete, consolidated record of what happened during that entire ATM session, including the fact that the transaction completed. Since this consolidated information was published back to their existing bus, they maintained the SOA/ESB pattern in their infrastructure so it would be easy to add new capabilities on these new records.

This compiled information was important for the retail banking unit, especially for mobile apps, as the apps now could simply read the aggregated records to give customers the summarized information they sought. In fact, the mobile apps do not even read the low-level events, as they only read and process these consolidated event records. This allowed them to be more agile while also avoiding unnecessary workloads on their core banking mainframes, as these tasks are performed entirely in the Hazelcast-based components of their architecture.

As a business-critical system, they implemented two multi-node clusters in two distinct data centers for supporting disaster recovery. The WAN Replication and Automatic Failover features in Hazelcast made the implementation of the disaster recovery strategy much easier.


The main outcome of the marketing initiative was that offer conversions increased four-fold. As a result of pitching the customer at the right time, which was soon after an interaction versus two days later, the offer came across as timely and relevant. And by using SMS, the offers seem personalized for the customer’s needs at the moment, and not like a broadly distributed spam email. After only six months, the initiative became profitable, as the bank is earning money from these proactive campaigns. The efficiency of the system ensures that future campaigns will be inexpensive to launch. And since the new infrastructure was built with extensibility in mind, the opportunity for future profit continues to grow.

This new initiative was also a big win because it was easy to implement. The IT team estimated that the cost of starting the pilot for Hazelcast in this initiative was one-tenth the cost of using a data warehouse as the core technology. It was easy to get started at low scale to see how the deployment would work, and then scaling from there to a production-ready level was straightforward. The effort took only six months from the start of the first proof-of-concept to the production deployment of the first marketing offer. They have since grown to supporting almost 70 campaigns, which process about 10 million events per day.

Processing completes in less than 120 milliseconds, which gives the marketing team more than enough responsiveness to react quickly to customer needs. In most cases, promotions had business logic to intentionally delay the customer-facing communications by a few seconds to ensure delivery at the “right” time. The fast responsiveness of the system was useful in creating the performance headroom necessary to support further growth. This was especially important for setting up a pathway for implementing more real-time processing in the bank.

Next Steps

With this new stream processing technology in place, the IT team is looking forward to leveraging its architecture for more real-time activities. In addition to customer-facing promotions, they also see opportunities for real-time analytics (versus batched analytics that take several hours) for real-time monitoring of aggregated key performance indicators (KPIs). Rather than getting all data and making decisions after batch analysis, there are opportunities to run ongoing calculations that support faster decision-making.

The team is exploring additional technological pursuits that work with Hazelcast to help with business agility. They are looking at OpenShift as a foundation for all of their microservices. They are expecting to add more sources of data from their many different channels. And they are considering other capabilities provided by Hazelcast, such as the change data capture (CDC) module that unobtrusively reads database transactions and publishes them into Hazelcast as if they were real-time events.