Merged the topic here since it’s the same topic and they had almost exactly the same summary.
Per the notes above, snaps can already have cross dependencies today, via interfaces. These enable sharing actual content (data, files, etc) and also endpoints which expose a particular protocol (that’s somewhat vague, on purpose).
You should be able to use LXD and Juju by simply leveraging their APIs, and we can also get them to expose their clients via the content interface if that’s what you need. Some of the work going on in snapd right now will also make it easier to have sharing in the style of the content interface being performed via other interfaces, so this may soon become even nicer from a user standpoint.