Criando um canal de comunicação entre componentes no Angular

Então, eu tenho dois componentes, CompA e compA5, com 3 ou 4 níveis de diferença. Quero criar um canal de comunicação entre os componentes.

Digamos que do componente CompA eu quero enviar um evento para o compA5 para retornar alguns dados, esperar que ele retorne dados e executar alguma ação. É possível criar um serviço ou qualquer outra prática recomendada para atingir esse tipo de comportamento.

questionAnswers(2)

yourAnswerToTheQuestion