As the solution we have overridden the playbook build (generate-site.js module). We have split the main playbook into small set of playbooks which are easy to swallow. We call them as canary playbooks.
async function buildCanaryPlaybooks(playbook, sourcesPerPb = 3) {
let canaryPlaybooks = {};
if(playbook.content.sources.length > sourcesPerPb){
let sources = playbook.content.sources;
for(let i=0,j=sources.length; i < j; i+=sourcesPerPb){
let chunk = sources.slice(i, i+ sourcesPerPb)
let canaryPlaybook = getNewPlaybook(playbook,chunk)
canaryPlaybooks[i] = canaryPlaybook
}
}
return canaryPlaybooks;
}