Flow-IPC is an open-source project created by Akamai to enable developers to instantly make in-memory transfers of data, images, and videos between different applications.
Inter-process communication (IPC) allows different programs to communicate and share data with each other, and it is crucial for distributed low-latency applications.
According to Yuri Goldfeld, senior principal software engineer at Akamai and lead developer for Flow-IPC, IPC often requires a tradeoff between elegance and performance. “And even the slow approaches aren’t all that elegant,” he said.
The aim of Flow-IPC is to do away with that tradeoff and give developers the best of both worlds. It is offered as a C++ toolkit to facilitate transmission of data between different application processes.
It provides API entry points at each IPC level, which allows developers to solve problems as they are encountered without needing to reorganize their application’s data representation or event loop.
Goldfeld said that the project started internally as a way to split a monolithic service into several smaller ones, without adding extra latency into the new applications.
“Surveying teams at the company, this was a common task and pain point, resulting in various time-sucking non-reusable approaches,” he said. “It seemed best to develop a general solution – not just for our internal teams but also for the benefit of the open-source community. Flow-IPC wants to be open-source by its nature.”