> For the complete documentation index, see [llms.txt](https://docs.fractalworks.io/joule/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fractalworks.io/joule/components/processors/stream-join.md).

# Stream join

Join independent stream events to trigger advanced analytics and dynamic business rules

## Overview

The join operation in stream processing is a powerful function that **accelerates time-to-insight** by correlating multiple event streams into a cohesive, meaningful flow. This is essential for scenarios requiring **real-time data analysis**.

Unlike real-time data enrichment, which supplements data with computed or static data sets, stream joining focuses on combining live events for immediate insights and improve customer engagement.

<figure><img src="https://3062398388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUU6FZlV07ZD90OzbzGww%2Fuploads%2F49HWGfY3f4NJHh33hiuL%2Fjoin-ads.png?alt=media&amp;token=e97f16eb-30a6-483b-90e9-7f3ed0ddd8cc" alt="" width="375"><figcaption><p>Real-time customer promo example</p></figcaption></figure>

## Use cases

* <mark style="color:green;">**Ad Performance tracking in real-time**</mark>\
  Track ad clicks, impressions, and user actions in real-time to refine ad spend and gather customer insights.
* <mark style="color:green;">**Dynamic promotions**</mark>\
  Detect new leads on your site, track product interactions, and apply promotional rules to deliver tailored promotions.
* <mark style="color:green;">**Product recommendations**</mark>\
  Combine user sessions, viewed ads, and clicks to generate personalised product suggestions, with feedback loops for ongoing improvement.
* <mark style="color:green;">**Customer 360 proactive support**</mark>\
  Analyse multiple customer telemetry streams to provide proactive, personalised support and enhance the customer experience.
* <mark style="color:green;">**Platform anomaly detection**</mark>\
  Monitor and analyse telemetry from devices to detect unusual compute or network usage patterns, supporting operational efficiency and reliability.

## Available stream join options

On the Joule platform, there are two types of joins available.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:orange;"><strong>Inner stream joins</strong></mark></td><td>Strict join between two event streams</td><td></td><td><a href="/joule/components/processors/stream-join/inner-stream-joins.md">Inner stream joins</a></td></tr><tr><td><mark style="color:orange;"><strong>Outer stream joins</strong></mark></td><td>Immediately pass the first event received and initialised downstream processors</td><td></td><td><a href="/joule/components/processors/stream-join/outer-stream-joins.md">Outer stream joins</a></td></tr><tr><td><mark style="color:orange;"><strong>Join attributes &#x26; policy</strong></mark></td><td>Join attributes to control and optimise performance</td><td></td><td><a href="/joule/components/processors/stream-join/join-attributes-and-policy.md">Join attributes &amp; policy</a></td></tr></tbody></table>
