Sure, there are many ways to connect two blockchains. I want to explore one, following some guidelines:
Simplicity: To me, it is the key of software development. Try to implement something simple, not a Rube Goldberg machine. When making implementations simple, you can understand the problem and the simple solution. And you will have something that can evolve, change, adapt in the future, instead of having a big and complicated, astronautical, convoluted architecture.
Guided by Use Cases: Not by technology, but by the concrete use cases. See clearly the problem. implements the simplest solution. Avoid adding something that no use case needs.
Make it work, make it right, make it fast: Evolutive implementation, software that grows. You don’t need to have all pieces connected from the beginning. Try a simple case, and start to add functionalities. No optimization at the first steps.
Test-Driven Development: I confess I’m a big supporter of TDD. To me, it is the way to write production code. TDD pushes for simplicity, evolving implementations, and clear understanding of the use cases, problems and chosen solutions.
Resilience: The implementation should be robust. We are managing value, virtual currency, money. And the solution should be resistance to occasional failure.