This epic contains work to make pluginsync more efficient and sync more things (primarily puppet types) to the agent.
Pluginsync naively downloads individual files, which doesn't scale as the number of files increases. Each file content request competes for JRuby instances affecting compilation. In addition, data types and type aliases are not downloaded to the agent, which is barrier to adopting deferred functions.
Please consider SERVER-2298 for this epic. It's tough to diagnose a duplicate file name that causes irregular plugin sync behavior and catalog compilations.