I am using D3 to show activities in the workflow. Below is a fiddlehttp://jsfiddle.net/g3yq9z6g/11/This fiddle has just a few activities. It look fine and also the user has the ability to select a node and move it, in order to get a better view. However, when I am using this is real workflows (especially the bigger ones), the display doesn't look great.For instance, below is a display for one of the medium sized workflows -

Given this kind of a display, it would be very difficult for the user to understand the workflow.
One thing that would surely help, is to always have the 'Initiate' activity on the left center of the screen and 'End' activity on the right center of the screen. That way, at least user would not have to locate the Start and End of the workflow. Start and End activities of the workflow will always be called 'Initiate' and 'End'.
Is it possible to achieve this? Something like -

However, this doesn't completely solve the problem as the workflow is still hard to read.
Something like the below screenshot would probably make more sense for the users, where most nodes are aligned to the center. If there is more than one transition from the node, then that is displayed on either top of bottom.

The circular kind of display that Force layout is generating by default very hard to read for this type of use case. It is all right if end users have to manually adjust a few nodes at runtime in order to improve the layout, however, if they have to drag and adjust each and every node, then it is very cumbersome. How to calculate the nodes position so as to graph layout is logical (left to right) and there are minimal crossings of edges. Any suggestions on how this could be improved?
Thank you.