Sometimes smooth, sometimes not so.<p>We use FETCH/HTTP and STOMP/WS to move the data, the main issue has always been spotty communication inside the team. A while ago, the situation was even worse, so some progress did happen. OpenAPI annotations to generate Swagger docs helped a bit, but I rarely bother to open these. Drafting endpoint signatures in TypeScript as a part of our workflow yielded great results, something concrete to talk about when things don't work as expected or during code reviews. Unfortunately, the agreements are as good as initial requirements, if the team does not understand or communicate these clearly, misunderstands are bound to happen. The other pain point is that OpenAPI only supports HTTP (<a href="https://github.com/OAI/OpenAPI-Specification/issues/55" rel="nofollow">https://github.com/OAI/OpenAPI-Specification/issues/55</a>), there's no documentation for STOMP endpoints and custom RPC run over it. Another thing is when signatures change unexpectedly (I know, this should never happen; at least integration tests help here) in subtle ways and the UI suddenly starts misbehaving; types shared between frontend (TypeScript) and backend (Java) can partially alleviate the issue, but none of available tools provide what I'd really like to use, the results are either not expressive enough (no ADTs, unlike types authored by hand) or really hard to reconcile with existing code base.