Planning for Programming One doesn't just start writing code and have something that works magically happen, nope, there is actually quite a bit of work done before one even begins to start coding up a feature or process!
As you can see to the left (click image to enlarge) we programmers typically use flow charts to develop a plan of operation in order to map out functionality in a easier way so that we can work out many problems before they even become a problem.
This is our asset service workflow which helps us develop the service, which also communicates with the Permissions service, well technically, the local viewer communicates with permissions system and then the asset service.
Our system works around a centralized tile based ecology, think of it like the fabric of space for all which everything is based within. When tiles are loaded (either invisible in space or visibly as terrain) a list of associated assets is stored with it, the viewer takes this list and gets permissions back from the permissions system and then asks for the assets them selves from other peers who may be in the same tile space as the viewer, if they do not have the asset requested then the viewer will ask the central asset service for a copy, this helps prevent bandwidth bottle necking by distributing the load across peers. Permissions are always stored on our cloud based service for security purposes.