Learn By Example: Bank Offers

Targeted ad placements in real time


The example illustrates the ability of VoltDB to ingest large volumes of streaming transactions and make decisions, in real time, on which ads to show to which customers. The example emulates consumer purchase transactions and finds the best matching offer to present at the point of sale.

Matching offers are found using a query that joins a summary view of the account activity with this vendor (merchant) against the available offers from that vendor. The best match is determined by priorities for the offers set by the vendor.

A web dashboard shows recent offers as well as a moving chart of the number offers per second and overall transactions per second.


This example inserts the results into a persistent table, that can be used to drive a live web interaction, such as serving an online ad that describes the offer, retrieved from the inputs of the account and vendor_id. It is also shown in the web dashboard as recent examples of offers.

The example also demonstrates the use of streams to export historical data to a data lake (such as Hadoop) via the VoltDB HTTP export connector.


The code for the Bank Offers sample application ships as part of the VoltDB product in the /examples folder. You can also find it in the VoltDB github repository.