The first part of the question is not clear to me. What are you looking for?
To solve the subscription issue, you need to install the subscription plugin and set it to accept local. You could set it to accept all but this seems to cause errors with new gateway requests and server to server requests.
If there is such a diagram I do not know of one. It is fairly simple system unless you are talking about the code. The software uses an embedded jetty server, administration is via a website, plugins can be added to expand the defautl capabilities of the server (Chat gateways, Subscribtion requests, packet filters, etc), the protocol is XMPP, etc. Not sure what else you would like to know specifically. There are docs on the site on how to build plugins. The source code is available to download for openfire, spark and most other products.