Skip to content

Network Identity Store

Purpose

The Network Identity Store (NIS) engine stores information associated with known external identities (of peers, topics, domains, and engines), such as advertised addresses and local metadata. The information stored can come from various sources, such as local configuration, P2P protocols (e.g. peer sampling, clustering, pub/sub), other engines, or user input.

In case of peer identities, it stores known addresses along with local routing and transport preferences, latency measurements, trust metric and trust zone (e.g. local, remote).

State

IdentityStore

Contains all identity records stored by the engine.

Backed by the local key-value store (key: external identity, value: identity record).

list<(ExternalIdentity, IdentityRecord)>

Messages received

LookupIdentityRequest

Look up information about an external identity in the local database.

Reception:

LookupIdentityRequestV1

Record with fields:

External identity to look up.

Triggers:

LookupIdentityResponseV1

Record with fields:

External identity the response is about.

Identity record associated with id.

UpdateIdentityRequest

Update information associated with a given external identity.

Reception:

UpdateIdentityRequestV1

Record with fields:

External identity to update.

Identity record with updated fields.

Triggers:

UpdateIdentityResponseV1

Record with fields:

External identity the response is about.

  • result: Result

Result of the update operation.

Notifications sent

IdentityUpdated

Notification sent after an IdentityRecord has been updated.

IdentityUpdatedV1

Record with fields:

External identity the notification is about.

Updated identity record.

Message flow

sequenceDiagram

Any Local Engine ->>+ Network Identity Store: LookupIdentityRequest
Network Identity Store -->>- Any Local Engine: LookupIdentityResponse

Any Local Engine ->>+ Network Identity Store: UpdateIdentityRequest
Network Identity Store -->>- Any Local Engine: UpdateIdentityResponse