Hello Gophers,
I'm practicing creating clean application architectures in Go and I have many questions.
I feel I have not completely grasped the idea.
I want to know if I'm doing it right from an architectural point of view (ignore the crawler part, I was just testing RPC stuff).
I have abstracted away the storage so I can easily switch
between different implementations. I have two implementations, one that stores and retrieves from an SQLite table and the other stores and retrieves from a hash table.
So to summarize questions:

- Is this the right direction and is it mostly idiomatic Go (I'm also learning Go)?
- Is there any harm in referring to structures multiple levels deep? For example can I refer to data structures in Entities layer, from the presentation layer?
- Would be grateful if one could point me to a good resource(s) / book(s) etc.