Bi-directional proxying allows teams in separate regions to share components.
In the example above, there are two teams in two different regions; each team also has their own build/CI server. They may be sharing only a portion of what they create, but they accomplish this sharing by each publishing to a hosted repository in their own region. A proxy repository in the other region then pulls the components from the hosted repository, making them accessible to the other team.
To make reads simple, they group together the hosted and proxy repositories in each of their regions. This way, they have on-demand access to both components written to the hosted repository in their own region as well as those pulled from the other region by their proxy repository.
Bi-directional proxying is a building block pattern that is typically combined with one of the following patterns:
- Combine with Federated Repositories to provide on-demand proxying across regions
- Combine with Content Replication Pattern to pull content across regions automatically
- Sharing components on demand between distributed teams
- High bandwidth, low-latency network connectivity
Factors to Consider
- Configuration overhead of several repositories
The following help topics may be helpful when implementing this pattern: