Broadway: A Concurrent and Multi-Stage Data Processing in Elixir

Broadway is a public GitHub project developed by Dashbit, designed to streamline concurrent and multi-stage data processing. Its purpose is to address the complex issues that software programmers typically encounter when dealing with real-time data processing, especially in highly concurrent environments. In an age where data is king, Broadway's significance cannot be overstated, offering relevance to anyone who regularly works with high volumes of data.

Project Overview:


Broadway’s objectives revolve around simplifying and optimizing data processing. The project aims to solve the often cumbersome issues with data flow and concurrency management that developers face. By providing built-in acknowledgments and backpressure, it addresses the need for faster and more efficient data processing. The target audience for Broadway includes developers and software engineers, particularly those using Elixir for concurrent programming.

Project Features:


At the core of Broadway are its robust features and functionalities. Among these, backpressure ensures no data overloading during processing, while automatic acknowledgments reduce the risk of data loss. The ability to construct multi-stage pipelines helps optimize data flow, and Broadway's support for batchers contributes to the efficiency of resource-intensive operations such as database inserts or API calls. For instance, in a real-time analytics system, Broadway could be used to aggregate data in batches and insert them into databases swiftly, reducing IO overhead.

Technology Stack:


Written in Elixir, Broadway leverages the many strengths of this dynamic, functional language. Known for its real-time and distributed-system capabilities, Elixir was a perfect fit for handling Broadway's concurrent, multi-stage processing needs. Broadway also takes advantage of GenStage, a specification for exchanging events between Elixir processes, and RabbitMQ or Amazon SQS for message queueing.

Project Structure and Architecture:


Broadway’s structure revolves around processes and pipelines, underlining its orientation toward concurrent processing. It's set up with producers, processors, and batchers which interact to ensure smooth flow and processing of data. Among these, producers fetch data from sources, processors carry out custom transformations, and batchers gather processed data to carry out batch-specific actions.


Subscribe to Project Scouts

Don’t miss out on the latest projects. Subscribe now to gain access to email notifications.
tim@projectscouts.com
Subscribe