The Problem We came out with structured facts or "modern facts" as we call them long ago, however, we still have legacy facts and we send both the legacy version and the modern version whenever the agent requests a catalog. This means we are allowing users to refer to the legacy fact names in code and potentially creating tech debt if we ever remove the legacy fact names, as we probably should. Additionally we are burdening PuppetDB with all of the duplicate information since legacy facts are represented in the modern facts. Downstream of PuppetDB the PE Console is slowed down by the large amount of unique fact names caused by legacy facts. Suggested Improvement We should provide an option to disable legacy facts altogether so that the agent doesn't send them to the master and then subsequently they do not get stored in PuppetDB. We could provide this as an option, deprecate legacy facts and remove them in a future version. |