Beautiful dashboards in Python with first-class real-time integration

A Preview of deephaven.ui

May 6 2024

Alex PetersAlex PetersQuantitative Software Engineer @Deephaven
AI prompt: a python snake drawing a line plot, with a large clock on the wall

Are Python developers ready for the real-time data revolution? The most common Python toolkits - including essential dashboarding packages - certainly are not. So, we're proud to announce deephaven.ui - a real-time dashboarding library built atop the powerful Deephaven real-time data engine. Creating real-time dashboards in Python has never been this easy.

Streaming data is poised to dominate the marketplace in the coming years, and there's a gap between Python data scientists and the real-time dashboards they will increasingly need to create. deephaven.ui is already the best-in-class platform for building real-time dashboards in Python.

This article will explore the beginnings of deephaven.ui, and will give an example of using it to create a streaming dashboard:

A dashboard created with deephaven.ui using mock streaming stock market data.

Note

deephaven.ui is under very active development. Check out the existing documentation here to get started.

Why bother?

Python and dashboarding have gone hand-in-hand for a long time. Python developers often need quick and attractive ways to present their ideas and don't have the time to learn all of the necessary front-end skills to make it happen. Platforms like Dash, Streamlit, and Shiny have all emerged as Pythonic solutions to this problem. Developers can create beautiful dashboards with little to no front-end knowledge and share their creations with the broader community at the click of a button.

However, there's one major problem: these platforms provide very minimal real-time support. If you look, you can find some examples of using these platforms to create approximately real-time dashboards (see Dash and Shiny examples), but their real-time support seems an afterthought - it was never intended to be central to the execution model. They take a snapshot-based approach that simply refreshes the dashboard at regular intervals to give the appearance of real-time support. This may work for low-volume cases, but crumbles under the weight of modern high-throughput streaming data.

Why does this matter? Streaming data is poised to dominate the marketplace in the coming years. Streaming data pipelines enable rapid communication with connected devices, powering use cases like fraud detection and personalized offers. Forbes estimates that nearly 30% of data generated by 2025 will be real-time, making real-time data integration crucial for staying competitive. Fortune Business Insights has made a colossal prediction: the streaming analytics market will surpass $125B by 2030.

So, there's a gap between Python data scientists and the real-time dashboards they will increasingly need to create. We searched far and wide for a great solution to this problem, one that puts streaming dashboards at the top of the priority list, but could not find one. So, we rolled our own: deephaven.ui. This new dashboarding paradigm sports a flexible React Spectrum-based syntax, a modular component-based design, and most importantly, real-time as the top priority.

Although deephaven.ui is brand new and under very active development, it's already the best-in-class platform for building real-time dashboards in Python. Extensive documentation is coming in the near future that will enable you to explore the ins and outs of deephaven.ui with ease.

If you want to see deephaven.ui in action, check out the new deephaven.ui notebook in the demo system. So far, the notebook is only in the demo's Code Studio side.

Get started with deephaven.ui

The easiest way to get started with deephaven.ui is to run the Docker image that has it pre-installed:

Important

As of Deephaven 0.37.0 and onwards, the server-ui image is no longer published. deephaven-ui is part of the base server image.

Note

For this to work, you must have Docker installed.

Then, head over to http://localhost:10000/ide/ to start using deephaven.ui.

Here is a relatively complex deephaven.ui dashboard with a mock streaming dataset underneath it. You can copy and paste this into your IDE and play around with it to see how flexible and responsive deephaven.ui really is:

Expand for the full code block

Only the beginning

This is only the beginning of deephaven.ui. It's already the only game in town for real-time dashboards in Python, and it will only get better from here. To stay up-to-date with deephaven.ui and the Deephaven Team, please join our Slack community. We can't wait to see the dashboards you come up with!