Quickstart¶
This guide will help you build your first BSPump pipeline in 5 minutes.
Your First Pipeline¶
Let’s create a simple pipeline that generates random data and prints it.
import bspump
import bspump.common
import bspump.random
class MyPipeline(bspump.Pipeline):
def __init__(self, app, pipeline_id):
super().__init__(app, pipeline_id)
self.build(
bspump.random.RandomSource(app, self, choice=['A', 'B', 'C']),
bspump.common.PPrintSink(app, self),
)
if __name__ == '__main__':
app = bspump.BSPumpApplication()
svc = app.get_service("bspump.PumpService")
svc.add_pipeline(MyPipeline(app, "MyPipeline"))
app.run()
Understanding the Pipeline¶
Let’s break down what’s happening:
BSPumpApplication: The application container that manages the event loop and services.
Pipeline: A chain of components that process events. Each pipeline has: - One Source: Generates or receives events - Zero or more Processors: Transform events - One Sink: Outputs events
RandomSource: Generates random events from the provided choices.
PPrintSink: Pretty-prints events to the console.
Adding a Processor¶
Let’s add a processor to transform the events:
import bspump
import bspump.common
import bspump.random
class TransformProcessor(bspump.Processor):
def process(self, context, event):
return {"original": event, "transformed": True}
class MyPipeline(bspump.Pipeline):
def __init__(self, app, pipeline_id):
super().__init__(app, pipeline_id)
self.build(
bspump.random.RandomSource(app, self, choice=['A', 'B', 'C']),
TransformProcessor(app, self),
bspump.common.PPrintSink(app, self),
)
Using Jupyter Notebooks¶
BSPump integrates seamlessly with Jupyter notebooks for interactive development:
from bspump.jupyter import *
import bspump.common
auto_pipeline(
source=lambda app, pipeline: bspump.random.RandomSource(
app, pipeline, choice=['A', 'B', 'C']
),
sink=lambda app, pipeline: bspump.common.PPrintSink(app, pipeline),
name="QuickstartPipeline",
)
In subsequent notebook cells, you can process events:
# This cell processes each event
event = {"original": event, "transformed": True}
Next Steps¶
Learn about Core Concepts to understand the architecture
Explore Common Patterns for common use cases
See Integrations for connecting to external systems