Publication Steps involve multiple steps and may involve multiple systems. For example below is a sample implementation we have done which involves Fedora.
- Start a transaction
- Create a version snapshot
- Create a container/folder to capture the details of the version
- Add properties to this container folder
- Invoke DOI service generation by posting XML to external DOI vendor
- Send provenance information to an ElasticSearch index
- Send a JMS message to external Preservation Manager component to perform AIP creation and replicating to other storage locations.
- Make entries to oracle table with details necessary for dissemination system for publication display.
- Commit transaction
Ideally we would like the capability to bind all this into a single global transaction using a JTA Implementation provider and Spring Framework.
So hopefully if Fedora Transaction API is defined to work with two-phase commit (2PC) strategy and allows hooks into readily available JTA providers will be great.