Honestly sounds like the right move. RTDB starts getting painful once too many users are hammering the same aggregation nodes at once. I ran into similar retry storms on hot paths before, and Postgres handled it way better once the aggregation logic moved server-side. I’d probably watch materialized view refresh frequency pretty closely though. At higher write volumes they can become their own bottleneck if you refresh too aggressively.
Biggest thing that helped me was treating AI like a fast junior, not an architect. I still define the structure myself first, even if it’s rough, then let it fill in pieces. Also worth sanity checking outputs against docs, I’ve caught it using outdated patterns more than once. For testing, even basic integration tests go a long way since AI-generated code can “look right” but break in weird edge cases.