Since the engineer implementing the task went in a different direction from what I had in mind, now I feel like I have to dive into the code and explain the approaches I wrote, and also get involved in the code much more than I would like. How can I overcome this?
For any kind of major feature or project, it’s important to have an agreed upon rubric which is written down. What are the pros/cons of each approach with regards to performance, complexity, developer cost, etc? Once you have a shared understanding, now the burden is on the code author to explain why they deviated from the 2 suggested approaches.
Independent of that, there seems to be a communication issue – you should not be finding out about an alternative implementation at the time of code review. You should give that feedback to the engineer, or create some sort of accountability/check-in system to avoid surprises like this.