# Bullet Updates - Windowing, Apache Pulsar PubSub, Configuration-based Data Ingestion, and More

DevFeed: [Bullet Updates - Windowing, Apache Pulsar PubSub, Configuration-based Data Ingestion, and More](<https://devfeed.tech/articles/bullet-updates-windowing-apache-pulsar-pubsub-configuration-based-data-ingestion-and-more-20497.md>)

Original publisher: [Read original article](<https://yahooeng.tumblr.com/post/183315480351>)

Author: rosaliebeevm-blog

Published: 2019-03-08T17:12:50Z

Content type: release

Language: en

Sources: [Yahoo](<https://devfeed.tech/sources/yahoo.md>)

Topics: [streaming-data-processing](<https://devfeed.tech/topics/streaming-data-processing.md>), [stream-processing](<https://devfeed.tech/topics/stream-processing.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [big-data](<https://devfeed.tech/tags/big-data.md>), [code](<https://devfeed.tech/tags/code.md>), [java](<https://devfeed.tech/tags/java.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [releases](<https://devfeed.tech/tags/releases.md>), [spark](<https://devfeed.tech/tags/spark.md>), [stream](<https://devfeed.tech/tags/stream.md>), [stream-processing](<https://devfeed.tech/tags/stream-processing.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [updates](<https://devfeed.tech/tags/updates.md>), [yahoo-engineering](<https://devfeed.tech/tags/yahoo-engineering.md>)

## AI overview

This update describes new windowing support in Bullet, an open-source query system for data flowing through streaming systems. It explains time- and record-based windows, including tumbling, sliding, and hopping window patterns, for returning intermediate query results.

## Source excerpt

yahoodevelopers: By Akshay Sarma, Principal Engineer, Verizon Media & Brian Xiao, Software Engineer, Verizon Media This is the first of an ongoing series of blog posts sharing releases and announcements for Bullet, an open-sourced lightweight, scalable, pluggable, multi-tenant query system. Bullet allows you to query any data flowing through a streaming system without having to store it first through its UI or API. The queries are injected into the running system and have minimal overhead. Running hundreds of queries generally fit into the overhead of just reading the streaming data. Bullet requires running an instance of its backend on your data. This backend runs on common stream processing frameworks (Storm and Spark Streaming currently supported). The data on which Bullet sits determines what it is used for. For example, our team runs an instance of Bullet on user engagement data (~1M events/sec) to let developers find their own events to validate their code that produces this data. We also use this instance to interactively explore data, throw up quick dashboards to monitor live releases, count unique users, debug issues, and more. Since open sourcing Bullet in 2017, we've been hard at work adding many new features! We'll highlight some of these here and continue sharing update posts for future releases. Windowing Bullet used to operate in a request-response fashion - you would submit a query and wait for the query to meet its termination conditions (usually duration) before receiving results. For short-lived queries, say, a few seconds, this was fine. But as we started fielding more interactive and iterative queries, waiting even a minute for results became too cumbersome. Enter windowing! Bullet now supports time and record-based windowing. With time windowing, you can break up your query into chunks of time over its duration and retrieve results for each chunk. For example, you can calculate the average of a field, and stream back results every second: In th