General questions around APIStar Inversion of Control goals and implementing new features

This is mostly directed at Tom but if anyone wants to share insight please feel free to chime in.

To quickly give some context, I’ve finally had the chance to dive into apistar recently (and it’s great!). Currently using it for a PoC/prototype that involves websockets and GraphQL (among other things), which I only mention because I know both are on the roadmap for apistar and I’d like to contribute something back to the project as a result of the work that I’m doing now. With apistar being at an early development stage though, I’m still trying to wrap my head around how best to implement some things in a way that aligns with the architectural philosophy.

So I have two general questions that I wanted to run by you.

Can you point me to any books or papers/articles that inspired you or strongly influenced the design decisions in apistar, especially relating to the inversion of control & dependency injection principle(s)?

And a slightly more specific question; I read the discussion around ASGI/uvicorn/messaging interfaces between you and Andrew Godwin in it’s entirety, which was a great read, but I was wondering where you guys landed on that? Or if there were any other discussions that may have solidified the thinking around the best direction to take considering the potential tradeoffs that came up at that time? If not, no worries. Just wanted to ask if the thinking had changed before going down the wrong path.

Also to note, I’m familiar with the basic concepts of IoC/Dependency Injection, especially as it applies to frontend JS frameworks (Angular, React), but would just like to gain a more complete understanding of where to draw the lines when adding new features to the APIStar framework.