Kernel agents: Should they be running on all nodes
Knowing that Kernel agents are essential for OOTB Pega functioning, is it implied that these agents should be running on all nodes? And therefore, associated with RunOnAllNodes (instead of BackgroundProcessing node type).
In Pega 8.31, I have observed that nearly all Kernel Agents are associated with node type BackgroundProcessing. If I have one node in my cluster classified as Custom1, based on the OOTB settings, I could see only 2 agents running on it.
Good questions! The best place to see the OOTB node classification is in Admin Studio>>Resources>>Node Classification. You can then plan your nodes (using -DNodeType JVM argument) if you want to run certain agents. At the minimum, Pega infinity needs Search,Backgroundprocessing,Stream,WebUser to be specified at least one node in the cluster. That should cover most of Kernel and essential agents. Other types are customer decision hub related, e.g., Batch,ADM, RealTime,RTDG, etc. Custom1... Custom5 can be used for any specific node type, e.g., Custom1 can be used to run Pega Marketing specific agents (e.g., SendEmailsInBulk). The newly released Pega 8.4 Admin Studio actually has a screen to show 'Associated node types to agents' very useful:
Cheers @Kevin. The screenshot you've shared from 8.4 does interest me.
I have a couple of follow-up questions though, based on your response.
1. Is WebUser node must?
Far as I'm aware, my application does not have any agent performing web-user functions. So I've classified node 1 of 2 in Dev as 'Search, Stream, BackgroundProcessing' to allow indexing for Developer search and run agents (all of which are associated with BackgroundProcessing node type). Node 2 of 2 is classified as 'Custom1' only to prevent any BackgroundProcessing agents from running on it, and also to disallow system treating it as a Universal node (that's when the node hasn't been classified). At startup, Search and BackgroundProcessing are enabled in client-only mode on node 2, which is fit for my purpose.
2. Should kernel agents be running on all nodes, or only a single node within the cluster?
Consider this example: If deployment is performed on node 2, then knowing that Pega-ImportExport agents are not running on it, will there be any issue encountered with rule unpacking or any asynchronous background activity? The highlighted portions don't really match-up and hence the reason for my confusion.