As seen in the image, the first thing the Browser has to do is send a request to some server. This server has to return the prerendered html markup, so the server has to be the Server Side Renderer.
You might ask yourself, why you should do this. After all, you could just deliver everything from one server. However, if you use this architecture you can:
Of course, nothing is without drawbacks. Everything has a price. This architecture
If you need a frontend, which has to look and feel homogeneous, you should use this architecture.
If you need a frontend, which can look and feel homogeneous, you should still use this architecture.
If you need a frontend, which musn’t look and feel homogenous, you could still use this architecture. After all, why wouldn’t you want to have the benefits described above?
Of course if you are writing a small service, building such an architecture is way to oversized. So for small services, you shouldn’t use this architecture.
In the end it all comes down to how big your frontend is going to be. At some point you have to think about the problems which occur with big web applications and this architecture might help you solve some of them.