Having done multiple implementations on the commercetools (CoFE+CoCo) platform and also using the old setup vs the new and improved Multitenant option -- we always have this question as to where do we keep this config - project.yml (old setup), studio config (project level or tastic or datasource config), custom object in commercetools or any other option.
There is always this confusion around whether we should use one area vs other? Will it be good to manage if everything is in one place ? Studio is a business user tool, should we have only what they have to edit there as against any other service configurations - search (algolia) config / cms (amplience/contentful/contentstack) config / internal payment systems config / etc., How do we manage UI labels / success or error messages etc.,
If we add the config to frontastic studio config -- its sent in the call to controller via the actionContext in every call - invariably of whether the config is needed for the call or not -- which means its present in the data transfer making it loaded -- also even if you grab the data and cache it in a redis or nodecache (local to the apihub pod) -- there is no way to tell CT to not send it in every controller request but do it only if its changed. If the configs are present in custom object you can make a single call to CT get the data cache it and use it how many ever times you want without having to load studio config (context).
What are your thoughts? How are you solving the config problem in your project? Ideas/suggestions ?
-Naga