Skip to content

Added MemoryStreams and the provider conformance suite. - #28

Open
moedash wants to merge 2 commits into
moe/AI-198-if-py-2-streams-packagefrom
moe/AI-198-if-py-3-memory-provider
Open

moedash wants to merge 2 commits into
moe/AI-198-if-py-2-streams-packagefrom
moe/AI-198-if-py-3-memory-provider

Conversation

@moedash

@moedash moedash commented Oct 3, 2026

Copy link
Copy Markdown
Owner

This PR adds MemoryStreams, the in-memory reference provider, and the conformance suite every provider runs.

What changed?

  • temporalio.streams.providers.memory.MemoryStreams keeps streams in process memory and implements the provider protocols from the previous PR.
  • tests/streams/test_streams_conformance.py is parametrised by provider. Capability markers (reports_positions, detects_divergent_retries, truncates) skip what a provider doesn't claim, and say why.
  • The two plugin registration cases join the type tests, now that there's a provider to register.

Part of AI-198 (epic AI-37).

Why?

An interface with no provider can't be exercised. The memory provider is the smallest one that honours the whole contract, so the suite has something to run against without a server. Every provider that comes later registers in the same suite, and that's how we know they behave the same.

How did you test it?

Link to a test plan if any -

  • Unit Tests
  • Staging
  • End to End Tests

poe lint is clean. The conformance suite passes on memory, and so do the memory provider's own tests and the type tests.

It holds streams in process memory, so the interface has a provider the conformance suite and unit tests can run without a server.
The suite is parametrised by provider, and capability markers skip what a provider does not claim. Every later provider registers here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Changelog entry rides another PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant