# IAsyncObservable&lt;T&gt;

Package: [Microsoft.Orleans.Streaming](/orleans/docs/api/csharp/microsoft.orleans.streaming/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Streaming) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/Core/IAsyncObservable.cs#L16)

```csharp
public interface IAsyncObservable<T>
```

This interface generalizes the standard .NET IObserveable interface to allow asynchronous consumption of items. Asynchronous here means that the consumer can process items asynchronously and signal item completion to the producer by completing the returned Task. 

Note that this interface is invoked (used) by item consumers and implemented by item producers. This means that the producer endpoint of a stream implements this interface.

## Type parameters

- `T`: The type of object produced by the observable.

## Methods

- [SubscribeAsync(IAsyncObserver&lt;T&gt;)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iasyncobservable-1/methods/subscribeasync-orleans-streams-iasyncobserver-t-4b4ec6fc/)
- [SubscribeAsync(IAsyncObserver&lt;T&gt;, StreamSequenceToken?, string?)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.iasyncobservable-1/methods/subscribeasync-orleans-streams-iasyncobserver-t-orleans-streams-streamsequenceto-ab54d9fc/)
