We usually recommend the two-way sync because it covers most of the use cases.
With a two-way sync group, you can sync versions across a group of Jira projects. In a two-way sync all projects are considered equal. New versions, no matter in which project, are synchronized within the group.
Use Case: If you have e.g. three different teams (Dev, Marketing, QA) which work on the a software product and contribute to the same releases, you create a two-way sync group which contains all projects.
If you add a new version to any project it gets automatically synced to the other two projects in the group.
In contrast, a one-way sync is a directed sync from a source/master project to one or more target projects. With the one-way sync you can build advanced sync group, with several source/master and target projects.
If you add new versions to a source/master project, it will be synced to its target projects. If you add a new version to a target project, it won’t be synced with any other project.
“One-way” refers to how new versions are being synced among the projects in your group. That means, if you update an existing, synced version (e.g. change its name), it doesn’t matter in which project you update the synced version - it will update the versions in all other projects as well.
It is possible to have groups with several sources or several target projects, as you can see in this example.
Use case: If you have two development teams working on different projects and a QA team supporting both development teams, you can create a sync group with two source projects (Dev1 and Dev2) and one target project (QA).
If you add a new version to Dev1 it gets automatically synced to QA, but not to Dev2. The same applies to project Dev2.