What are the Slack Archives?
Itβs a history of our time together in the Slack Community! Thereβs a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.
Because this space is not active, you wonβt be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..
can anyone point me at a doc / explain why spryker decided to use "glue -> client -> gateway -
Comments
-
@UK5DS29L2 > strongly depend on each other and are by no means separate applications
Thatβs wrong. They are decoupled by using the transfer objects. You can deploy Yves + Client + Shared independently from Zed + Shared. We already do this for Glue and Zed when we build our docker containers.
because Zed and Yves can request Zed/Yves namespaces
While this is in general possible, it is prohibited by a code sniffer rule (https://github.com/spryker/code-sniffer/blob/master/Spryker/Sniffs/Namespaces/SprykerNoCrossNamespaceSniff.php).
can I call Zed myself without using glue / yves ?
You can with a little bit of work, but itβs highly discouraged as you would drop the benefit of having Zed running in a more secure network and in addition you will end up mixing applications. As long as you will never have different touchpoints then Yves, this could be ok, but I wouldnβt recommend it as one of the biggest feature of spryker is to easily add other touchpoints like an API (glue), or maybe a voice based touchpoint or one for direct sales, etc.
0 -
of course not ootb
0 -
I suppose we should be calling the same endpoints client does: the gateway?
0 -
since this is a custom concept, you might actually opt for a different naming to prevent confusion
0 -
if not ootb, then the answer is no ;]
0 -
that is corerct
0 -
and why would it?
0 -
to get rid of the client π that was the whole point of the discussion
0 -
can i? -> yes
does it come ootb? -> no
why? -> because the client is there for a reason0 -
if you want to continue this chain of question i would refer to @UL6DGRULRβs explanation above
0 -
then if I need client to communicate between Zed and Yves....
0 -
then they are not independent (even though they are decoupled)
0 -
(not ootb at least)
0 -
the way the system comes configured with them as a tandem, yes
0 -
but that is like asking: can symfony use eloquent instead of doctrine? -> yes! does it work ootb? -> no! does that mean symfony depends on doctrine?
0 -
(apart from them living in different repos π)
0 -
letβs circle back to the original post
0 -
https://documentation.spryker.com/yves/client.htm?Highlight=client (though not amazing), says the following:
The purpose of the client is to encapsulate the logic which runs the shop independent from the overlying application. So in case you want to use a different technology stack, you can reuse the client.
0 -
that adresses part one of the original post
0 -
ok, so I understand that the client is meant to keep stable/expected request-response validation between Yves/Glue and Zed (and it allows you to separate them to different domains later when the system grows up to need it)
0 -
partially right
0 -
which part is wrong here? the fact I mentioned Yves/Glue when it could be pretty much anything else?
0 -
- i would always advise to run the applications on isolated nodes
0 -
- the client decides for the source of the data, meaning the client does much more than just the yves/glue<>zed communication
0 -
none of those prove my statement wrong
0 -
the client also communicates with the data stores (and potentially third parties)
0 -
that is correct
0 -
you said partially right, so you meant some part is not right, then which part isn't ? you have only added more to what I said
0 -
@UK5DS29L2 If you search for a decoupled frontend for any ecommerce suite I suggest taking a look at http://ongr.io/
But I do not get whatβs your point in complaining that a certain Spryker module for Yves only works with the related Zed code. Itβs like complaining that you want to use your old tires from a hyundai i10 with your new porsche cayene.
You can replace yves (the tires in my example) with some effort, but it still has to fit Zed. You could also replace Zed but IMO this is a pretty big effort which I wouldnβt do if there isnβt a really good reasond. And even if there is a good reason, than maybe a different ecommerce system better suites your needs.Maybe one assumption which could lead to this discussion is that the client layer not only provides access to Zed, but also to the search and the storage and every client decides if he has to do a Zed request or can get the prepared data from the storage/search already (which is a lot faster).
If you do have some data which is only available in Zed, you can consider putting it into the storage (https://documentation.spryker.com/architecture_concepts/publish_and_synchronization/publish-and-synchronization.htm)0 -
@UL6DGRULR I think you missing the point. please re-read before posting comments. my question was why do we use HTTP call instead of direct method call. Car parts comparison? let's be serious here π
0
Categories
- All Categories
- 42 Getting Started & Guidelines
- 7 Getting Started in the Community
- 8 Additional Resources
- 7 Community Ideas and Feedback
- 76 Spryker News
- 929 Developer Corner
- 787 Spryker Development
- 89 Spryker Dev Environment
- 362 Spryker Releases
- 3 Oryx frontend framework
- 35 Propel ORM
- 68 Community Projects
- 3 Community Ideation Board
- 30 Hackathon
- 3 PHP Bridge
- 6 Gacela Project
- 26 Job Opportunities
- 3.2K π Slack Archives
- 116 Academy
- 5 Business Users
- 370 Docker
- 551 Slack General
- 2K Help
- 75 Knowledge Sharing
- 6 Random Stuff
- 4 Code Testing
- 32 Product & Business Questions
- 70 Spryker Safari Questions
- 50 Random