I recently had to migrate an OpenIDM 2.1 projet to version 3.0. I mostly worked on pre-released 3.0 versions, and it was the opportunity for some documentation and bug reports.
Now that OpenIDM 3.0 final is released, paths to migrate are clearer, in spite there’re still tasks specific to each deployment, and thus not necessarily documented, depending on the degree of customization. For example, if you were using outbound REST calls, this is typically a component which evolved a lot between both versions, and thus expect some work to adapt or optimize for 3.0. Also, sometimes, customization was meant to fill a gap due to a lack of some feature in OpenIDM 2.x. In such a case, that migration specific task should be easier. For example, OpenIDM 3.0 supports a new mapping property called onSync, to implement the synchronization delivery guarantees, also called compensated synchronization (see sample 5b). This feature was previously unavailable and thus one had to rely on custom scripts, for example, to implement it or something very similar. Usually speaking, Janua may helps you in your migration to OpenIDM 3.0 project and strategy, from OpenIDM 2.x versions but also from Sun Identity Manager, formerly known as Waveset Lighthouse.