# Subject.multicast

Multicasts an `Fx` without replaying values that arrived before a subscriber joined.

## Signatures

```ts
export declare function multicast<A, E, R>(fx: Fx.Fx<A, E, R>): Fx.Fx<A, E, R | Scope.Scope>;
```

## Why

`multicast` is the zero-retention sharing policy: simultaneous subscribers share source work,
while consumers that arrive later receive only later publications.

## Ownership and lifetime

The first subscriber starts one source execution and the last subscriber interrupts it. A later
subscriber starts a fresh execution. No replay buffer is retained. Source errors and services
are preserved, and `Scope` owns each subscription.

## Examples

```ts
import { Fx } from "@typed/fx"
import * as Subject from "@typed/fx/Subject"

const sharedTicks = Subject.multicast(Fx.periodic("1 second"))
```
