Why is is OK to change the interface of actions in a platform supported module but not in my own API?

0
I have just discovered that Community Commons Function Library v7.0.0 changes the parameter for the ExecuteMicroflow actions specifying the MF from a string to a specified microflow. This dramatically changes the utility of the action as you can no longer use it to launch an arbitrary MF. This seems very bad practice and should have failed any unit testing of the module prior to release, assuming any has been done. I am not even sure I understand why it was done, given the risk of breaking so many dependencies. This is in stark contrast to the overly enforced rigidity of the Published App Service, which won't let me change my own interface once I have dared to test it from another app!
asked
4 answers
2

I suggest to raise an issue on the modules GitHub page:

https://github.com/mendix/CommunityCommons

It is indeed not good practice to break that API.

At the same time there is good reason to have such an action as it improves maintainability (Find usages, renaming microflows...)

answered
1

Regarding API breakage: our policy is that breaking APIs is only allowed for a Major version change:

* version 7.0.0 may introduce changes compared to 6.10.0,

* but 7.1.0 should be API compatible to 7.0.0

answered
2

Of course you can break your APIs. However, in such a case you should release a new version. That is exactly what Mendix is doing: they have released a new version. You are not forced to use the new version (the old version of CommunityCommons can still be downloaded), just like a consumer of your API shouldn't be forced to use the new version.

 

If AppServices work in another way (I wouldn't know, I don't use them as I believe they don't add value), it might be because Mendix chose easy of consumption over ease of change, which one could argue is a sensible choice for novice developers.

answered
0

Out of curiosity; what does your application do that introduces the need to dynamically construct the name of the microflow to be called?

answered