According to my understanding both checkout and branching functionalities along with circumstancing are used for same purpose alone. Which are for coordinated and collaborative work environment between different operators working on an application. My question is how each of those differ or what is the need for three various categories for same purpose?
Checkout - When your changes need to be isolated just for yourself and not shared with other users.
Branching (or checkout to branch) - When your changes need to be isolated but can be shared with other specific users and also moved around from Pega environment to another.
Circumstancing -When the runtime data or value of one or more properties determines which rule should be picked up for execution. Example: In report definition, the SQL function is dependent on the underlying database vendor and is therefore circumstanced based on that.