spring-cloud / spring-cloud/spring-cloud-gateway
[Discussion] UI aggregator / gateway / fragment service
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 4.9k
- Forks
- 3.5k
- Avg merge
- 20h 57m
- Merged PRs (30d)
- 8
Description
First at all that project seems really promising, far better then Zuul 1 version!
Last day I was talking with @dsyer about designing/prototyping a kind of layout service / ui composition service (whatever the name) inspired from Zalando Tailor project (from global Mosaic project - Microservices for the Frontend).
Goal of such service is to avoid getting a well designed and decoupled backend service used by a big monster monolith (SPA?) frontend. Each microservices could be responsible on their own frontend/ui fragments, layout service / ui composition service will be only responsible to aggregate every fragments using a base/master template and returns it.

I wanted to develop by myself a kind of closely inspired fork to Zalando Tailor but using Java + Spring 5 + Spring Boot 2.0 + Reactor. Though I really need such piece of service on my current stack, at start that project was also a good candidate for training myself to Spring 5 + Spring Boot 2.0 + Reactor.
When I spoke that to @dsyer I also proposed an possible architecture based on Zalando one

And mine (Yes is a totally a clone of Zalando one :trollface: )(Attention is a prototype, any box is not necessary a dedicated services. Is more a logical view)

At this point, @dsyer ask me why I have separated gateway and layout service. I don't really have a clear answer but in my mind, only reasons was separation of concerns and resilience (if layout service get down, you can continue using API). But I didn't think more.
That why I open you an issue (is more a discussion, I'm not asking feature request) to
- Have your feedback to such service in microservices/cloud architecture
- Your point about integrating it inside gateway or should be a dedicated services
Existing alternative or similar project to Zalando Tailor
- https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919/ (BigPipe from Facebook)
- https://github.com/opentable/oc
- https://github.com/acesinc/convergent-ui
- https://github.com/lsm/micromono#doc_render_page
- (Play Framework) https://www.youtube.com/watch?v=4b1XLka0UIw
Here some sources of inspirations about Microservices for Frontend topic:
- https://www.mosaic9.org/
- http://scs-architecture.org/
- https://www.youtube.com/watch?v=vCzTK4XPfX8
- https://www.youtube.com/watch?v=jJxmi8nrHwg&index=83&list=PLe1TplHMknuLAvTNaAqvqHchuZqC-70Gr
- http://allegro.tech/2016/03/Managing-Frontend-in-the-microservices-architecture.html
- http://blog.xebia.com/the-monolithic-frontend-in-the-microservices-architecture/
- https://www.infoq.com/presentations/html-components-services
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This is an architectural discussion about a UI aggregator or gateway, not an implementation request, and it names no project files, tests, or code entry points. Start by reviewing the proposed Zalando Tailor-inspired architectures and the question of integrating the layout service into the gateway. Done would require a maintainer decision on scope and architecture before implementation can be defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring, spring-boot
- Domain
- api, backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100