Example of multi-new observation
sequenceDiagram
participant NATS Server
participant microservice
participant NATS KV-Store
microservice->>+NATS Server: Subscribe(EVENT_NEW_QNAME)
note over microservice,NATS Server: ...some time passes...
NATS Server->>microservice: Publish(EVENT_NEW_QNAME, "new.example.com.")
microservice->>+NATS KV-Store: Request("new.example.com.")
note over microservice,NATS KV-Store: ...gets collected data about the domain...
microservice->>microservice: Has "new.example.com." been observed as new by other resolvers recently?
microservice->>NATS Server: Publish(OBSERVATION_MULTI_NEW, "new.example.com.")
Example of ramp observation
sequenceDiagram
participant NATS Server
participant Data Loader
participant S3
participant microservice
NATS Server->>Data Loader: Publish(EVENT_NEW_AGGREGATE)
Data Loader->>S3: Get(NEW_AGGREGATE)
Data Loader->>Data Loader: Create histogram
Data Loader->>S3: Post(Histogram)
S3-->>microservice: Publish(EVENT_NEW_HIST)
microservice->>microservice: For domain in hist, hasRamp?
microservice->>NATS Server: Publish(OBSERVATION_RAMP, "evil.hula.se")
note over microservice: ...Publish ramping domains...
microservice->>NATS Server: Publish(OBSERVATION_RAMP, "z5.nu")
Communication pattern for "NOT well-known" domains
flowchart
EDM-->|2, EVENT_NEW_QNAME, MQTT, mTLS, RFC 7515|bridge
bridge-->|7, OBSERVATION_RAMP, MQTT, mTLS, RFC 7515|POP
subgraph CORE
bridge-->|3, EVENT_NEW_QNAME|NATS_Server
NATS_Server-->|4, EVENT_NEW_QNAME|MULTINEW_microservice
MULTINEW_microservice-->|5, OBSERVATION_MULTI_NEW|NATS_Server
NATS_Server-->|6, OBSERVATION_MULTI_NEW|bridge
end
subgraph EDGE
POP-->|8, RPZ XFR|RecResolver
RecResolver-->|1, DNSTAP|EDM
end
Communication pattern for "well-known" domains
There is some discrepancy between this image and the sequence diagram for the ramp observation has the data loader component has not been taken into account here.
flowchart
EDM-->|2, one-minute aggregate, HTTPS, mTLS, RFC 7515|aggrec
bridge-->|7, OBSERVATION_RAMP, MQTT, mTLS, RFC 7515|POP
subgraph CORE
aggrec-->|3, Publish EVENT_NEW_AGGREGATE|NATS_Server
NATS_Server-->|4, Publish EVENT_NEW_AGGREGATE|RAMP_microservice
RAMP_microservice-->|5, Publish OBSERVATION_RAMP|NATS_Server
NATS_Server-->|6, OBSERVATION_RAMP|bridge
end
subgraph EDGE
POP-->|8, RPZ XFR|RecResolver
RecResolver-->|1, DNSTAP|EDM
end