PayPal has developed an open-source project called JunoDB, which is a key-value database designed for internal use. One of its key strengths is its ability to scale clusters and handle heavy loads, as demonstrated by PayPal’s extensive testing, where it remained robust even under a staggering load of 350 billion transactions per day.
JunoDB operates similarly to a typical key-value database and is utilized by PayPal for various purposes such as caching data, ensuring transaction deduplication, event counting (e.g., detecting server unavailability), long-term data storage, and cross-cluster data linking in cases where SQL database syncing is slow.
The project consists of three main components:
- An application library, which facilitates interactions with the server holding the data
- A proxy for sending commands to the server
- And a storage server that can either store data in memory or utilize RocksDB. PayPal created JunoDB because, at the time, there were no open-source projects or commercially available databases that met their scalability requirements.