For each chapter in Finding Ghosts in Your Data, I’ll include a few resources that I found interesting. This isn’t a bibliography, strictly speaking, as I might not use all of these in the course of writing, but they were at least worth noting.
Chapter 4 is all about building the framework for an anomaly detection service. Considering that this is in the subtitle, I don’t think it’s particularly spoiler-y that I’m using Python as the language of choice. Part of this chapter was based around a few key decision points:
- REST or gRPC for data serialization and deserialization? I will say that gRPC is usually faster and typically reduces network bandwidth requirements, but there are good reasons for and against each.
- Flask or FastAPI for API development? Based on that question, you can assume the answer to the prior question… Flask is a really good choice for API development, though my tech editor clued me in to FastAPI and I really like it.
- Neither Flask nor FastAPI is a server, so we’ll need one of those as well. I’ve used gunicorn for Flask development but FastAPI recommends uvicorn for its work. Developing Python-based APIs is not something I do much in my day-to-day life, so I won’t pretend to have a strong opinion here. Both of these products have done what I’ve asked of them, and that’s good enough for me.
- It’s also a good idea to think about the structure for your repository. This is something I’ve been terrible at historically, but I wanted to make the code base look more like a proper open source project and less like a repository of stuff I slapped together.
Based on the set of links I’ve listed here, you can tell that this chapter steers hard into application development. The first few chapters have been theory-heavy, the next couple are development-heavy, and then I plan to settle into a nice balance, mixing theory-heavy chapters with implementation-heavy chapters to tell an entire story.