The federated repositories pattern builds off of the Bi-Directional Proxying pattern. As with bi-directional proxying, the geographically separated teams may only share portions of what they create (e.g., perhaps they don't share their Maven components but only the finished wars/Docker containers).
The example above comprises three separate teams in three separate regions. There is bi-directional proxying between regions A and B; regions A and C; and regions B and C. To zoom in and see what bi-directional proxying looks like between each of these regions, see the Bi-Directional Proxying pattern.
This pattern allows for teams in different regions to proxy content from another region on-demand.
This pattern extends the Bi-Directional Proxying pattern
- Bi-directional distribution for geographically separated teams
- Some content is used only within one region, some is distributed
- High-bandwidth, low-latency network connection between sites
Factors to Consider
- Must maintain corresponding repository structures between sites
- Configuration can be complex with many sites and formats
- Can increase network traffic and latency
- Consider resiliency and recovery separately for each region
- Must manage cleanup independently by region; this can add complexity
- Must manage user tokens and access controls independently by region
The following help topics may be helpful when implementing this pattern: