I have a situation where two different teams (Team A and B)needs to fill their respective UI in parallel(Independently). I have used split join for this scenario. I created two different process flows, and configured these flows in the parent flow using "Joint All" condition in the split join shape.
Pega successfully created two different assignments and routed them parallely to the respective Work Baskets. But, when user from Team "A" is working on the assignment, User from Team "B" tried to open assignment, Says its locked by user from team A.
I have used optimistic locking, but the user from Team B needs to refresh the screen which indeed clears all the filled data.
How to achieve a pure parallel processing, where Team A and Team B needs to work parallel(Independently) on two different assignments?
I believe it should be quite rare in real life to have two users working on the same task for the same case with the same second.
So in general optimistic locking is sufficient. Another option would to work on two child cases instead of two assignments but then you will need merging effort to the main case to handle in your configuration.
As Marc mentioned may be the only alternative is having separate child cases under one parent and based on your business requirements.
If you are using split join you will end up forced refresh on a commit by Team A while it is opened by Team B parallelly. It comes with Pega's design to work on the latest information on the case, always.