To implement a sidechain, you need a way for one blockchain to recognize the legitimacy of a transaction that's happened on another blockchain, which in turn allows tokens to be "moved" from one chain to another. In practical usage, it's very similar to a gateway, except there's no "trusted party" that holds the tokens that have been moved to the other chain. Instead the deposit/withdrawal process is handled by the core code of the two blockchains.
We haven't written any code for sidechain support at this point in time, it's more of a long term goal to get something like this to replace the gateways. Note the sidechain concept goes by several terms (for example, it's referred to in BitShares and EOS forums as interblockchain transfers).
So the long term plan is a side chain and implement cross chain / inter blockchain communication and for now the transfers are facilitated via a gateway right ?
Also, in the BEOS, are you using MongoDB like EOS ?
And the code for the gateway will be Open Source / GPLed ?
Thank you for your detailed response. Its very informative.