Chapter 8. Easing gently into OpenSRF

Table of Contents

Introducing OpenSRF
Programming language support
OpenSRF communication flows over XMPP
OpenSRF communication flows over HTTP
Stateless and stateful connections
Enough jibber-jabber: writing an OpenSRF service
Registering a service with the OpenSRF configuration files
Calling an OpenSRF method
Accepting and returning more interesting data types
Accepting and returning Evergreen objects
Returning streaming results
Error! Warning! Info! Debug!
Caching results: one secret of scalability
Initializing the service and its children: child labour
Retrieving configuration settings
Getting under the covers with OpenSRF
Get on the messaging bus - safely
Message body format
Registering OpenSRF methods in depth
Evergreen-specific OpenSRF services
Evergreen after one year: reflections on OpenSRF
Strengths of OpenSRF
Appendix: Python client


The Evergreen open-source library system serves library consortia composed of hundreds of branches with millions of patrons - for example, the Georgia Public Library Service PINES system. One of the claimed advantages of Evergreen over alternative integrated library systems is the underlying Open Service Request Framework (OpenSRF, pronounced "open surf") architecture. This article introduces OpenSRF, demonstrates how to build OpenSRF services through simple code examples, and explains the technical foundations on which OpenSRF is built.