That depends on your design. If you will execute processes that are scoped for all the application you can share a knowledgeSession for all the application. If you want to do specific tasks for an user, for example having per user set of rules and processes (not human tasks in your processes) you can create a statefulknowledgesession per user. It really depends on your scenario.
Please, if you want to change the scope of the original question create a different thread/topic of conversation, so we can keep this forum ordered.
Thanks!