I’ve been working with the team at Aurena in Austria since the beginning of 2021. It’s been a lot of fun, and interesting
work. They’ve helped put a lot of support into Eventicle, which has been great for the project.
Around the start of this year, they started a drive to move their distribution process (when you go an get the stuff you won at auction) from a paper based one to a digital one.
It’s been a fairly substantial project, touching all parts of the business.
As part of that, we’ve built 2 new microservices using the standard stack and integrated them in using Apollo Federation.
That’s gone very well, but it showed some real issues in how we’ve been building GraphQL APIs. They weren’t extensible, nor could they be extended easily.
I wrote up on those on their tech blog, which you can find here
This took a fair amount of work to redesign and build, and greatly appealed to my inner technologist as we improved things and had to keep a close eye on the performance impact of our changes.
We used Elastic APM to view the number of DB queries being run to note the N+1 nature of our approach.
Eg, this is one of our queries we were fixing. After we made it extensible and easy to maintain, this happened
The same data loaded 5 times, one for each property being requested!
Integrating DataLoaders and our improved approach on top brought this back to a single query, while still being extensible.
Overall, it was enjoyable, and puts the system in a great place for future dev.
Have a read of the full article.