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:
Triggers:
Record with fields:
id
: ExternalIdentity
External identity the response is about.
record
: IdentityRecord
Identity record associated with id
.
UpdateIdentityRequest¶
Update information associated with a given external identity.
Reception:
Record with fields:
id
: ExternalIdentity
External identity to update.
record
: IdentityRecord
Identity record with updated fields.
Triggers:
Record with fields:
id
: ExternalIdentity
External identity the response is about.
result
: Result
Result of the update operation.
Notifications sent¶
IdentityUpdated¶
Notification sent after an IdentityRecord has been updated.
Record with fields:
id
: ExternalIdentity
External identity the notification is about.
record
: IdentityRecord
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