[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Resource](https://evolu.dev/docs/api-reference/common/Resource) › createSharedResource

```ts
function createSharedResource<T, D>(
  create: Task<T, never, D>,
  __namedParameters?: SharedResourceOptions,
): Task<SharedResource<T>, never, D>;
```

Defined in: [packages/common/src/Resource.ts:324](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L324)

Creates [SharedResource](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResource).

The `create` Task must not fail. Creation establishes shared resource state
and may serve multiple concurrent acquirers, so a recoverable failure does
not belong to one lease. Handle recoverable failures inside `create`: retry
until creation succeeds (for example with a Schedule), or return a resource
whose state models connection and reconnection failures.

A successfully returned resource must be live and independently owned. The
`create` Task must not bind its disposal to that Task's [DisposableRun](https://evolu.dev/docs/api-reference/common/Task/interfaces/DisposableRun)
with `defer`.

Create resources with [disposable](https://evolu.dev/docs/api-reference/common/Function/functions/disposable) when their shape supports it. Its
disposal guard makes calls through a lease fail eagerly after resource
disposal instead of operating on disposed state.

The `create` Task runs while acquisition is locked and must not directly or
transitively acquire from the same SharedResource. The lock is non-reentrant,
so doing so deadlocks.

Internal work runs on a Run created from the Run that executes this Task, so
dependencies are captured at creation time. Deps provided to later acquire
calls do not change what `create` observes.

Lifecycle callbacks must not throw. A throwing
[onDisposed](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions#ondisposed) is a defect that panics
the Run tree.