- Building Event-Driven Microservices
- Building Evolutionary Architectures
- Building Micro-Frontends
- Continuous API Management
- Flow Architectures
- Foundations of Scalable Systems
- Fundamentals of Software Architecture
- Learning Domain-Driven Design
- Mastering API Architecture
- Microservices Up and Running
- Monolith to Microservices
- Software Architecture Metrics
- Software Architecture: The Hard Parts
- The Art of Agile Development
- The Software Architect Elevator
So many resources that you can easily get lost. Martin Kleppmann's Designing Data Intensive applications can be your starting point. It helps you establish a basic to advanced understanding on quite a few of the concepts that will be coming up and some key principles to drive your strategy from a technical perspective (you'll need a few facets of your strategy for different audiences).
Then move to a more corporate focused presentation with Piethein Strengholt's Data Management at Scale (business facing aspects of your strategy, incl. governance forums etc. unless if you are short-term lucky enough to not have them due to size - long term unlucky as you'll have to establish them or drive others to do so).
At this point, after a few discussions you should be getting a feeling of what the direction will be in terms of where your data will be stored, how you do data quality, how you process, how you expose, infrastructure etc. Dozens of books on the individual elements of your stack. Try to link them back to Kleppmann or other more specialized but still conceptual books (e.g. if you do streaming you could look into Flow Architectures by Urquhart, Streaming Systems By Akidau et.al. etc.) Then you can move to inference, etc. I am not at that stage yet, so no specific advice. In my case, I see inference etc. as more of something I can address after data are on the platform, but not sure what the state you are facing is. I guess you can start looking into trendy stuff like MLOps etc.
Good luck! It's really exciting working on this domain!
What worries me is the fragmentation, and the fact that no one language seems to check all of the (subjective set of) boxes for a general purpose high-speed, ahead-of-time compiled language [0].
E.g, Crystal seems to be the only one supporting a modern concurrency story (similar to Go), but has a huge problem with compile times.
Nim looks nice in many respects, but last I checked, they don't have anything like Go-like concurrency. Maybe not on everyone's wishlist, but as the world move toward flow everything/everywhere[1], I personally find this to be a problem.
[0] https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__n...
[1] https://www.amazon.com/Flow-Architectures-Streaming-Event-Dr...