# `Replicant.Decoder.Messages.Message`
[🔗](https://github.com/baselabs/replicant/blob/v0.3.1/lib/replicant/decoder/messages.ex#L180)

`M` — a logical-decoding message emitted by `pg_logical_emit_message`. A TRANSACTIONAL message
(`flags = 1`) arrives bracketed by Begin/Commit (or inside a streamed txn's S/E/c) and rides
`%Transaction.messages`; a NON-TRANSACTIONAL message (`flags = 0`) arrives standalone and
delivers via `c:Replicant.Sink.handle_message/2`. `xid` is set only for a streamed message.
`ordinal` is set by the assembler for a transactional message (spec §7.1).

# `t`

```elixir
@type t() :: %Replicant.Decoder.Messages.Message{
  content: binary() | nil,
  lsn: Replicant.lsn() | nil,
  ordinal: non_neg_integer() | nil,
  prefix: String.t() | nil,
  transactional?: boolean() | nil,
  xid: non_neg_integer() | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
