In common industry practice, software vendors state what combinations with other software they have tested and are therefore supported: these combinations should work, and if they do not, it is considered a bug. In other words, compatibility information for a software offerings is stated as “positive lists” (software is known to work with x, y, z), not “negative lists” (software will definitely not work with q, r, s).
A particular software may also work in combination with other than third-party components listed by the vendor of that software. However, this has not been tested and is not guaranteed: If anything goes wrong (which may manifest as an obvious failure or subtle problems only noticed late in the game), you are very likely on your own and there will be nobody who steps up to help you.
Therefore it is always highly recommended (that is, a “best practice”) to stick with those component combinations that are listed as officially supported. You are free to ignore such recommendations, of course.