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