# `Arex.Vertex`
[🔗](https://github.com/m/exarcade/blob/v0.1.0/lib/arex/vertex.ex#L1)

Graph vertex helpers with boundary-aware traversal.

This module builds vertex creation and traversal operations on top of the core
record, query, and command helpers while preserving tenant and scope
boundaries.

Use `Arex.Vertex` when your application works with ArcadeDB vertex types but
still wants the same ergonomics as `Arex.Record`: validated identifiers,
normalized errors, boundary stamping on writes, and boundary filtering on
reads and traversals.

In practice this module is a thin, focused graph layer over the record and
query primitives. It exists so graph code can stay as concise and explicit as
document code without losing the tenant/scope model.

# `both`

Traverses both incoming and outgoing neighbor vertices, optionally restricted by edge type.

# `create`

Creates a vertex and stamps any active tenant and scope values.

The type name is validated before Arex sends the `create vertex` command.

# `delete`

Deletes a vertex by RID after confirming it is visible within the active boundary.

# `fetch`

Fetches a vertex by RID using the same boundary rules as `Arex.Record.fetch/2`.

# `incoming`

Traverses incoming neighbor vertices, optionally restricted by edge type.

# `merge`

Merges attributes into a vertex and re-fetches the updated record.

# `out`

Traverses outgoing neighbor vertices, optionally restricted by edge type.

# `replace`

Replaces a vertex content payload while preserving its current boundary fields.

# `upsert`

Upserts a vertex type using the same cardinality and boundary rules as `Arex.Record.upsert/3`.

---

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