# `RpcLoadBalancer.NodeFilter`
[🔗](https://github.com/MikaAK/rpc_load_balancer/blob/main/lib/rpc_load_balancer/node_filter.ex#L1)

Node-name matching for filter-based routing and load-balancer membership.

A node matches a filter when the filter is a substring of (or regex against)
the node name, EXCEPT when the node's short name carries a configured excluded
pattern that the filter itself does not. This keeps a class of nodes — e.g. QA
nodes named `<type>_qa@host` — out of the general `<type>` routing set, while a
`<type>_qa` filter can still reach them.

Exclusions default to `[]` (no behavior change). Configure them with:

    config :rpc_load_balancer, excluded_node_patterns: ["_qa"]

# `matches?`

```elixir
@spec matches?(node() | String.t(), String.t() | Regex.t(), [String.t()]) :: boolean()
```

---

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