So, going to share a bit of a hot take here. I want to start by being VERY CLEAR that this is my attempt to be honest and not to be hostile. I love Apollo and the products this team pumps out!
Iāve been a massive fan of federation and my team was a very early adopter of it. I understand the advantages/disadvantages of managed versus unmanaged but thus far we have gone with unmanaged for three reasons:
1.We like the dynamic nature of being able to deploy a single microservice and the changes in schema be picked up immediatelyā¦ especially when doing local development. Itās nice to not have to restart services.
2.We donāt have any plans to utilize Apollo Studio for a variety of reasons.
3. There isnāt a stable, well-documented way to do home-grown managed federation.
What worries me about this deprecation, and the direction Iāve seen Apollo seeming to go, is it seems that there is a push for āuse our paid services or elseā. This is a major step back from the typical monetized open source model that I typically see where it is more āHereās an awesome open source product. Here are additional features/functionality/support that you CAN use to add additional value.ā
This change to remove serviceList, with a lack of stable and documented way to NOT use studio, is anti-open source, in my opinion, because it leaves zero options for consumers who are not in the Studio ecosystem.
For this to be āfairā open source product that doesnāt back consumers into a corner and that doesnāt leave consumers stranded, consider eitherā¦
Leave serviceList as is or
Provide VERY CLEAR alternatives for consumers not using the Studio ecosystem.
Again, trying to provide this outside prospective as a consumer who loves the library.
Hey all, firstly thank you for everyoneās input. I know this is a hot topic and I appreciate everyoneās willingness to contribute to the conversation.
I donāt think what weāre proposing is a contentious change, so Iād like to make at least this bit perfectly clear in case there was any misunderstanding. We have every intention of supporting past functionality with the replacement weāre proposing. Use of the word ādeprecatingā may have sent the wrong message, since our plan is to replace this bit of API with something entirely more capable than just polling your services. The new API should be inclusive of all existing use cases while supporting a reactive model that weād like to recommend going forward.
Iāve opened a GH issue and expect to start work on this change as soon as I reasonably can, which realistically should be some time this month. Thereās something of a proposal written in there which Iām happy to refine/concretize if anything is unclear, but I think thereās enough there for others to chime in and provide feedback. Iām very interested in hearing if there are any gaps for existing use cases, so I encourage anyone to look and participate.
This change has landed to the v0.x branch and is available as an alpha for testing. I encourage anyone interested in these changes to try it out and provide any feedback! I expect to release this on both v0.x and v2 late this week / early next week.
Hey!
Didnāt read through the entire thread but I assume it is related ā we are currently using serviceMap to identify our subgraphs in runtime and fetch data from our database according to the subgraph that the request is made to, I elaborated more on this stackoverflow topic ā
Where I want to create dynamic flow in accordance to the required subgraph, and I see that internally serviceMap is using serviceList in its implementation ā is it also on the way to deprecation?
Hey @Avivon, Iām not quite sure I follow. I donāt see where youāre making use of serviceMap in your example.
I think I see where youāre referring to serviceMap depending on serviceList, however I think that particular serviceList is not the same as the one thatās public API and deprecated.