# Top missing or top trimming - node tagging - No persistence of node output for the node. The runtime can persist it before it provides the data to the operate of the next node in sequence but nodes don't have access to the data(for now). A restart of node means a loss of data and it has to be rebuilt. - Persist the RCAs only in SQLite on disk. - Metric nodes gather data from Reader's in-memory SQLite metric store updated every 5 seconds. All the rows for the table requested in full resolution is sent to the next symptom node. - Nodes only send the data as it is generated by the operate method. It is the responsibility of the downstream node, if it needs multiple samples of the same to calculate. - This holds true for the networking thread as well. No retries. Send data through the long lived connection as it is generated. The metrics lost are lost. - Node to node data is passed based on a .proto file. A single `.proto` file for entire data-flow graph. - For the RCA that is persisted, it's all persisted in a single table. - Logging - Stats gathering and exposing to Pmet ## Validations ### Runtime - Check for stale metrics/Symptoms/RCAs before calling operate. ## Good to have - Can the the threshold name test be used in form of an enum when a threshold is referred to. It's easy to make mistakes if strings are used everywhere. - Some RCAs can be turned on and off via the rca.conf ## Renaming - Change FlowField to Graph. Each of the sub-components of the graph can be called components. - Move Stats inside the Graph object. This will allow tests to run in parallel. - Graph initialization code needs to be sketched out.