I have implemented pulp infrastructure based on the following scenario's.
1. Pulp server - bserver1.example.com [getting update from origin feed]
2. Pulp Server & Admin Client - bserver2.example.com [getting update from parent pulp server that is bserver1]
3. Pulp Consumer/Client - bclient.example.com
I have created the following 3 repositories and one consumer group and synced with upstream repository from internet. Now 3 repositories configured and published with all rpms. Now i have registered bclient.example.com client with pulp server. I have installed one package also via pulp from pulp master and got installed successfully.
As per my understanding through pulp we can save huge space for all repositories and avoid duplication.
Pulp's usage model involves syncing multiple up-stream repositories locally; these repositories can then be cloned, which uses hard links to sync them locally with almost no disk space used. This allows us to sync a repository once, then duplicate it as many times as necessary to support multiple teams and multiple stability levels.