Observable é um objeto reativo que representa a emissão de uma sequência de valores.
Ao utilizar o Observable como retorno de método, o java-restify irá assumir que a resposta da requisição representa uma coleção.
Por exemplo, digamos que o endpoint a ser consumido retorne um JSON; se a resposta for um array (uma coleção), você pode utilizar o Observable; se a resposta for um único objeto, utilize um Single (ver abaixo).
Single
Single é um objeto reativo que representa a emissão de um único valor.
O Single é o retorno adequado caso a resposta da requisição represente um único objeto (assim como o Observable é o mais adequado para uma sequência/coleção de objetos).
Completable
Completable é um objeto reativo que não emite valores, podendo apenas ser completado sem erros ou emitir um erro.
O uso desse objeto como retorno de método é adequado quando não é necessário obter o corpo da resposta, mas o seu código deve reagir quando a requisição for concluída sem erros ou em caso de problemas.