Proxying remote repositories is great when we need release versions of external artifacts in order to proceed with our own development efforts, but when remote teams have to collaborate on the same project, or there are co-dependencies between different projects things get more complicated. It’s nearly impossible to keep all teams synched on the same snapshot version each time one is created. Replication could be a solution, but it’s not efficient to create all that network load when you don’t need a full repository sync.
Artifactory’s Smart Remote Repositories come to the rescue allowing you to create a local proxy for a remote Artifactory repository. When configuring a remote repository in your local Artifactory instance, you specify the URL of a remote Artifactory repository, your local Artifactory instance will detect this automatically and offer an advanced set of features on top of those offered for “regular” remote repositories.
Reported download statistics
Artifactory maintains download statistics for repositories, so you can evaluate if artifacts are still being used and manage your cleanup policies. When you proxy a repository in another instance of Artifactory, and cache an artifact downloaded from it, the distant Artifactory is not aware if users on your end continue to use the artifact (downloading it from your local cache), and may end up cleaning up the original artifact. An Artifactory Smart Remote Repository lets you notify the distant instance whenever a cached artifact is downloaded so that it can update an internal counter for remote downloads.
When you proxy a repository in another instance of Artifactory and cache an artifact downloaded from it, you may not be aware of changes that may have been made to the original artifact’s properties if they are done after you cache it. By synchronizing properties, any changes to artifact properties in the remote instance are propagated to your cached instance of the artifact.
Remote repository browsing
You can browse the contents of the repository in the remote Artifactory instance for all package types, even if no artifacts have been cached in your instance of Artifactory.
When viewing a cached artifact, Artifactory will indicate if the original artifact in the remote instance has been deleted. This gives you an opportunity to copy the artifact over from your remote repository cache to a local repository in case you need to maintain access to it.
While replication may help to synchronize globally dispersed collaborating teams, it provides unnecessary network load when all the teams need to do is synchronize on snapshot builds and the like. Smart remote repositories provide an ideal solution, creating a situation of selective replication to synchronize the teams only the relevant artifacts that they need.