Point LiteJoin at your APIs, join data from multiple sources with SQL, and get live results instantly. No Kafka. No Flink. No cluster to manage.
$ go install github.com/litejoin/litejoin@latest
No event bus to set up. No streaming infrastructure to learn. Just URLs and SQL.
Point LiteJoin at any REST API, webhook, or event stream. It polls, detects changes, and emits only the deltas — turning any request/response API into a live stream automatically.
→Write standard SQL to join streams together. Enrich orders with user profiles. Combine IoT readings with device metadata. LiteJoin executes joins reactively — results emit the instant new data arrives.
→Consume joined results via SSE, HTTP webhooks, or Kafka. Power live dashboards, trigger workflows, feed downstream services — all from a single binary running on your terms.
Define your sources, joins, and time windows in a single config file. No boilerplate services, no orchestration layer, no build step. LiteJoin reads the config and runs the pipeline.
sources: - name: orders type: http topic: orders - name: users type: http topic: users joins: - name: order-enrichment sql: | SELECT o.*, u.payload AS user_info FROM orders o LEFT JOIN users u ON json_extract(o.payload, '$.user_id') = json_extract(u.payload, '$.id') triggers: [orders] result_key: $.user_id sinks: - name: live-dashboard type: sse addr: :8081
# Turn any REST API into a real-time stream sources: - name: weather type: api url: https://api.weather.gov/stations/KNYC/observations/latest interval: 30s topic: weather key_path: $.id change_detection: diff - name: github_prs type: api url: https://api.github.com/repos/org/repo/pulls interval: 60s topic: pull_requests key_path: $.number headers: Authorization: Bearer ${GITHUB_TOKEN}
Most APIs don't push changes to you. LiteJoin polls them, diffs against previous state, and emits only what changed. No webhook setup. No event bus. Just a URL.
Start with the open-source core. Build visually in Studio. Deploy to the cloud when you're ready.
The core engine. A single Go binary that ingests events, executes SQL joins reactively, and outputs results to any sink. Embed it in your app or run it standalone.
A visual interface for building streaming pipelines. Construct API streams like Postman requests. Draw joins between sources. See results in real time. Export to production config when ready.
Build in Studio, deploy to the cloud in one click. Managed infrastructure, persistent materialized views, and a live query API over your joined data. Your streams, always on.
You shouldn't need a data engineering team to get real-time features in your app.
Join your orders API with a delivery fleet API and a weather service. Push enriched, real-time order status to your mobile app over SSE. No webhooks to configure on any of the source systems.
Stream Stripe payment events joined with your user database and product catalog. Compute rolling revenue windows per plan tier, per region, updated every 5 seconds. Display in-app.
Run LiteJoin on an edge device. Join temperature sensor readings with humidity and equipment metadata. Trigger alerts when correlated thresholds are breached. Works offline — single binary, no cloud required.
Poll GitHub, Linear, Slack, and your deploy pipeline API. Join events by engineer and team. Power a single activity feed for your engineering org — built in 15 minutes, not weeks.
Install the binary. Write a YAML file. Get real-time joined data flowing to your app.