A Python library for constructing reactive dataflow graphs and streaming computations as data models.
Tributary is a Python library for constructing dataflow graphs that support reactive streaming, lazy evaluation, and functional programming. It solves the problem of building dynamic data models where computations update automatically based on input changes, unlike traditional DAG libraries focused on ETL or scheduling. It is particularly useful for options pricing, real-time data analysis, and scientific simulations.
Python developers building data-intensive applications such as financial models, real-time analytics, or scientific computing tools that require reactive data propagation and efficient computation graphs.
Developers choose Tributary for its focus on data modeling over pipeline orchestration, offering reactive streams and lazy DAGs with automatic differentiation, Graphviz visualization, and a lightweight design compared to heavier ETL-focused alternatives.
Streaming reactive and dataflow graphs in Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages asynchronous Python generators for synchronous, event-driven data streams, enabling complex event processing as shown in the streaming examples.
Uses directed acyclic graphs to propagate changes only when inputs update, optimizing performance for computationally expensive models like options pricing.
Supports gradient computation on both lazy and streaming graphs, facilitating machine learning and optimization tasks without external libraries.
Integrates with Graphviz and ipydagred3 for live monitoring and debugging, as demonstrated in the animated GIFs for streaming and lazy graphs.
Limited to single-node execution, making it unsuitable for scaling across clusters compared to alternatives like Dask or Spark.
Requires separate installation of Graphviz for graph visualization features, adding complexity to deployment as noted in the installation instructions.
Explicitly not designed for scheduling or pipeline management, forcing users to integrate other tools for production ETL workflows.