The operator of the online payment service PayPal has published the internally developed database JunoDB as an open source project on Github. JunoDB is a distributed key-value store.
Proxies distribute client requests
If desired, the now open-source database saves data on hard drives instead of in main memory and is therefore also suitable for persistent storage. The data is encrypted in storage and encrypted during transfer using the TLS protocol. In terms of architecture, the database relies on three components: Proxies are interposed between the client library in applications and the JunoDB storage servers, which distribute the client-side requests and thus enable horizontal connection scaling. The JunoDB thin client library is available in various programming languages such as Java, Golang, C++, Node and Python.
The architecture of JunoDB is characterized by three layers: clients, proxies and servers.
(Image: PayPal)
PayPal also names some specific use cases for JunoDB in the company: In addition to the temporary caching of user settings, access tokens and similar data, it is also used for idempotence, i.e. the avoidance of double processing – such as payments. Also, although JunoDB is not considered a permanent System of Record (SOR), in some cases the database is used as such. On top of that, the system with its inter-cluster replication is used to bridge latency.
In-house development according to internal requirements
They developed their own database because “more than a decade ago” there was neither a commercial nor an open source project that met the company’s requirements for horizontal scalability. Started as a C++ program, JunoDB is now completely rewritten in Go. The result was an “extremely scalable, secure and highly available NoSQL infrastructure,” as PayPal promises in the Medium blog post on opening the source. Internally, PayPal already uses JunoDB in almost all core backend applications – the database would process 350 billion requests every day. JunoDB is available open source on GitHub under the Apache 2 license.
(jvo)
To home page