Request/Reply pattern makes a poor choice for communication between services - it increases coupling. It doesn't matter much if it comes with HTTP or any other flavour.
> If the entities in one service are not in strong relationship with one another, it's a sign you can split them in two services. But if two microservices talk to each other so extensively, that the service boundary is becoming a bottleneck, it's a sign that they should be one service.
In other words it's best to break down services by Bounded Contexts.
To me framework is a set of libraries, glued together with some infrastructure code. Framework provides some conventions that speed up most common tasks.
It may be possible to use framework as a library, though there is no or small benefit.