# JournaledGrain&lt;TGrainState&gt;

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

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.EventSourcing) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.EventSourcing/JournaledGrain.cs#L15)

```csharp
public abstract class JournaledGrain<TGrainState> : JournaledGrain<TGrainState, object>
    where TGrainState : class, new()
```

A base class for log-consistent grains using standard event-sourcing terminology. All operations are reentrancy-safe.

## Type parameters

- `TGrainState`: The type for the grain state, i.e. the aggregate view of the event log.
