Retrofit de retorno de chamada no segmento principal

Com uma chamada como:

@GET("/user/{id}/data")
void getUserData(@Path("id") int id, Callback<Data> cb);

O retorno de chamada deve ser executado no thread principal (se não estiver usando o RxJava). Minhas perguntas são:

Onde a análise acontece (vamos assumir que estou usando um conversor XML para resposta do processo). Esse tópico principal é diferente? Depende da implementação do conversor?Se eu precisar incluir algumas regras de validação / regras de negócios (pesadas), preciso gerar um novo encadeamento em callable? Ou é bom fazê-lo nos métodos de retorno de chamada?

Estou procurando maneiras de obter dados em minha atividade a partir de um serviço da web, evitando o gerenciamento de threads por conta própria (ou usando outras abordagens como IntentService etc.), mas tenho medo de usar o RxJava (por causa do suporte experimental). Existe outra abordagem sugerida para lidar com esse problema?

questionAnswers(1)

yourAnswerToTheQuestion