Skip to main content
2026-04-08
Python SDK v0.17.1

What’s Changed

View on GitHub
2026-04-07
Python SDK v0.17.0

What’s Changed

New Contributors

View on GitHub
2026-03-17
Python SDK v0.16.0

What’s Changed

  • Pydantic AI integration: upgrade pydantic ai library to 1.68.0. Disable autowrapping tools in ctx.run. Default retry strategy for LLM calls is now 10 attemps with 1 second minimum interval.
  • Google ADK integration: Added RestateEventsSummarizer to wrap LLM summarization calls in durable steps and added flushing compaction events in append_event to Restate.

Bug fixes

New Contributors

View on GitHub
2026-02-20
Python SDK v0.15.0

What’s Changed

View on GitHub
2026-01-15
Python SDK v0.14.2

What’s Changed

View on GitHub
2026-01-08
Python SDK v0.14.0

What’s Changed

New Contributors

View on GitHub
2025-12-17
Python SDK v0.13.2

What’s Changed

View on GitHub
2025-12-11
Python SDK v0.13.1

What’s Changed

New Contributors

View on GitHub
2025-12-09
Python SDK v0.13.0

New features :tada:

  • Use context manager together with service handlers:
@contextvar
@asynccontextmanager
async def my_resource_manager():
    yield "hello"


@greeter.handler(invocation_context_managers=[my_resource_manager])
async def greet_with_cm(ctx: Context, name: str) -> str:
    return my_resource_manager.value
  • Add msgspec support, works out of the box when adding restate_sdk[serde] dependency:
# models
class GreetingRequest(msgspec.Struct):
    name: str

class Greeting(msgspec.Struct):
    message: str

msgspec_greeter = Service("msgspec_greeter")

@msgspec_greeter.handler()
async def greet(ctx: Context, req: GreetingRequest) -> Greeting:
    return Greeting(message=f"Hello {req.name}!")
  • Add extension modules for Google ADK and OpenAI, more info soon!

What’s Changed

New Contributors

View on GitHub
2025-11-18
Python SDK v0.12.0

New features :tada:

  • Added ingress client to send requests from your python applications to restate services:
async with restate.create_client("http://localhost:8080") as client:
  await client.object_call(increment, key="a", arg=5)
  await client.object_send(increment, key="a", arg=5)

  current_count = await client.object_call(count, key="a", arg=None)
  • Added new test harness constructor to be used in combination with @pytest.fixture:
# Your fixture
@pytest.fixture(scope="session")
async def restate_test_harness():
  app = restate.app([greeter])
  async with restate.create_test_harness(app) as harness:
        yield harness
        
# A test example, using the client
async def test_greeter(restate_test_harness: HarnessEnvironment):
    greeting = await restate_test_harness.client.service_call(greet, arg="Pippo")
    assert greeting == "Hello Pippo!"

What’s Changed

View on GitHub
2025-10-21
Python SDK v0.11.0

New features

  • You can configure more retry options for ctx.run_typed:
ctx.run_typed("payment", payment, RunOptions(
    # Initial retry interval
    initial_retry_interval=timedelta(milliseconds=100),
    # Retry policies are exponential, the retry interval will double on each attempt
    retry_interval_factor=2.0,
    # Maximum retry interval
    max_retry_interval=timedelta(seconds=10),
    # Max duration of retries before giving up
    max_duration=timedelta(minutes=5),
    # Max attempts (including the initial) before giving up
    max_attempts=10,
))
  • You can now provide a name to sleep, you’ll be able to see this name in the UI.

Notable changes

  • When suspending, the SDK will now throw an asyncio.CancelledError, instead of the previously thrown custom error. Catch this exception only if you need to cleanup some external resources between execution attempts.

What’s Changed

View on GitHub
2025-09-22
Python SDK v0.10.2
Removed typing_extensions dependency.View on GitHub
2025-09-22
Python SDK v0.10.1

What’s Changed

View on GitHub
2025-09-16
Python SDK v0.10.0

Invocation retry policy

When used with Restate 1.5, you can now configure the invocation retry policy from the SDK directly. See https://github.com/restatedev/restate/releases/tag/v1.5.0 for more details on the new invocation retry policy configuration.

What’s Changed

View on GitHub
2025-08-29
Python SDK v0.9.1

What’s Changed

View on GitHub
2025-08-28
Python SDK v0.9.0

New features :sparkles:

View on GitHub
2025-07-17
Python SDK v0.8.1

What’s Changed

New Contributors

View on GitHub
2025-07-02
Python SDK v0.8.0
  • Introduce new Service/Object/Workflow constructor fields and the decorator fields inactivity_timeout, abort_timeout, journal_retention, idempotency_retention, ingress_private, workflow_retention. Please note these work only from Restate 1.4 onward. Check the in-code documentation for more details.
  • Improved error messages

What’s Changed

New Contributors

View on GitHub
2025-05-19
Python SDK v0.7.2

What’s Changed

View on GitHub
2025-05-05
Python SDK v0.7.1

What’s Changed

View on GitHub
2025-04-29
Python SDK v0.7.0

What’s Changed

View on GitHub
2025-04-09
Python SDK v0.6.0
We are pleased to announce the release of the Python SDK 0.6.0, in combination with Restate 1.3. Check out the announcement blog post for more details about Restate 1.3 and the new SDK features: https://restate.dev/blog/announcing-restate-1.3/Check out the docs and examples to learn about the latest features: https://docs.restate.dev/category/python-sdk/

What’s Changed

New Contributors

View on GitHub
2025-02-18
Python SDK v0.5.1

What’s Changed

New Contributors

View on GitHub
2024-10-24
Python SDK v0.4.1

What’s Changed

View on GitHub
2024-10-23
Python SDK v0.4.0

What’s Changed

View on GitHub
2024-09-10
Python SDK v0.3.0

Breaking changes

This SDK is compatible only with Restate >= 1.1

New features

  • It is now possible to configure the max number of retry attempts/max duration of retries for ctx.run

What’s Changed

View on GitHub
2024-08-09
Python SDK v0.2.0

New features

  • AWS Lambda support. Develop your service as usual and when deploying on AWS Lambda set the handler name to the variable containing restate.app.
  • Implement request verification, to secure your service when interacting with Restate cloud: https://docs.restate.dev/deploy/cloud#http
  • Implement ctx.state_keys() and ctx.clear_all()

What’s Changed

  • We now test the SDK with the new SDK test tool
View on GitHub