Using APIs to enhance the user experience
Live with Primo and Alma in 2017, and Rosetta and Adlib 2017. Trying to customise interfaces to fit user needs and reach parity with previous system.
Adlib (manuscripts, oral history and pictures catalogue) with thumbnails pointing back to Rosetta. Primo doesn’t do hierarchies well but Adlib can show collection in context. But different technology stack – dotnet while their developers were used to other techs, so had to bring in skills.
Still getting lots of feedback that experience is inconsistent between website, catalogue, collection viewer, etc. Viewers would get lost. System performance slow for large collections; downtime for many release dates.
- do nothing (and hide from users)
- configure out of box – but hitting diminishing returns
- decouple user interfaces (where user interface is separate from the application, connected via web services)
Application portfolio management strategy
- systems of record – I know exactly what I want and it doesn’t have to be unique (eg Rosetta, Alma) – longer lifespan, maintain tight control
- systems of differentiation – I know what I want but it needs to be different from competitors (eg Primo, their own website)
- systems of innovation – I don’t know what I want, I need to experiment (developing their own new interfaces) – shorter lifespan, disruptive thinking
But most importantly is having a good service layer in the middle.
Lots of caching so even if Alma/Primo go down can still serve a lot of content.
Apigee API management layer – an important feature is the response cache so API responses get stored ‘forever’ – cuts response time to 1/180, and cuts load on back-end systems, avoiding hitting the API limit. Also handy to have this layer if you want to make your data open as whatever system you have behind the scenes, the links you give users don’t change; can also give customised API to users (rather than giving them a key to your backend system).
MASA – Mesh App and Service Architecture. Want to get rid of point-to-point integrations as if one point changes, you have to update all your integrations. Instead just update the single point-to-mesh connection.
Have done an internal prototype release, looking at pushing out to public end of this year/early next year.
- Important to have an application strategy – use systems for their strengths (whether that’s data or usability)
- Don’t over-customise systems of record: it creates technical debt. Every time there’s an upgrade you have to re-test, re-customise
- Play with API mediation/management – lots of free tools out there
- Align technology with business strategy