diff --git a/.changeset/sse-solid2-async-reactivity.md b/.changeset/sse-solid2-async-reactivity.md
new file mode 100644
index 000000000..9c23f83f2
--- /dev/null
+++ b/.changeset/sse-solid2-async-reactivity.md
@@ -0,0 +1,68 @@
+---
+"@solid-primitives/sse": minor
+---
+
+Align `createSSE` with Solid 2.0 async reactivity patterns
+
+### Breaking changes
+
+**`pending` removed from `SSEReturn`**
+
+Use ` {data()}
{data()}
+ + +// After — stale-while-revalidating (only true once a value exists and new data is pending) +Refreshing…
Error: {error()?.type}
Connection failed
}> +{data()}
+Latest: {data()?.message ?? "—"}
-Connection error
+Connection failed
}> +Latest: {data().message}
+Refreshing…
{data().msg}
+{data().message}
+Connection failed
}> +{data().msg}
+{msg}
}- Status:{" "} - - {readyStateLabel[readyState()]} - -
- -Error: connection lost
-- Latest data: {data() ?? "(none)"} -
- -{data()?.msg}
; + * // In JSX — Loading shows fallback while connecting, Errored catches terminal failures: + * return ( + *Connection failed
}> + *{data()?.msg}
+ *Connection failed
}> + *{data().msg}
+ *+ Connects, sends 2 messages, then simulates a terminal error after ~3 s. +
+
+ Cycles through 4 sensor readings every 2.5 s via{" "}
+
+ transform: json
+
+ .
+