Further reading
Our implementation has been heavily inspired by the implementation of a frame graph in the Frostbite engine, and we recommend watching this presentation: https://www.gdcvault.com/play/1024045/FrameGraph-Extensible-Rendering-Architecture-in.
Many other engines implement a frame graph to organize and optimize their rendering pipeline. We encourage you to look at other implementations and find the solution that best fits your needs!