Title (Goal)Amherst - ID service
Primary ActorDeveloper
ScopeComponent
Level 
Author Unknown User (acoburn)
Story (A paragraph or two describing what happens)It would be convenient to separate the internal fedora IDs from the external IDs used in a public front-end application (this way IDs can persist even as Fedora IDs may change – migrating from F3 to F4 is an excellent example of needing to decouple these identifiers). This would be a service to handle these mappings between internal and external identifiers.

A sample OSGi-based implementation is available here: https://github.com/acoburn/repository-extension-services, particularly the acrepo-idiomatic, acrepo-idiomatic-pgsql and acrepo-mint-service modules.

Web Resource interaction

This service would interact with Fedora in two ways. First, it would react to Fedora's event stream (JMS or other) in order to populate an external database of identifiers. It would also expose its own HTTP endpoint to make it possible to create, manage and resolve these external identifiers.

Deployment or Implementation notes

This service would be deployed separately from fedora, possibly on a separate machine. I envision that this would be implemented as a combination of OSGi services and camel routes that can be deployed in any OSGi container, written in Java and Blueprint XML. The implementation would require access to Fedora's HTTP API, event stream and an external database.

API-X Value Proposition

The primary use of this service in the context of API-X would be to allow for service discovery.