Apollo is a set of Java libraries that we use at Spotify when writing micro-services. Apollo includes features such as an HTTP server and a URI routing system, making it trivial to implement RESTful services. Apollo has been used in production at Spotify for a long time. As a part of the work to release version 1.0.0 we are moving the development of Apollo in to the open. The apollo-api library defines the interfaces for your request routing and request/reply handlers. The apollo-core library manages the lifecycle (loading, starting, and stopping) of your service and defines a powerful module system for adding functionality to an Apollo assembly. You do not usually need to interact directly with apollo-core; think of it merely as “plumbing.” The apollo-http-service library is a standardized assembly of Apollo modules. It incorporates both apollo-api and apollo-core and ties them together with several other useful modules to get a standard API service.
Features
- The apollo-api library is the Apollo library you are most likely to interact with
- It gives you the tools you need to define your service routes and your request/reply handlers
- The apollo-api library provides several ways to help you define your request/reply handlers
- You can specify how responses should be serialized (such as JSON)
- The apollo-core library manages the lifecycle (loading, starting, and stopping) of your service
- Apollo is heavily used within Spotify