Thank you for the posts on software/systems architecture, Camille.
nderground is a monolith, built using Grails. I have toyed with the idea of moving some of the image processing off to Amazon Lambda so that it will not consume memory and resources on the servers. But it doesn’t look like this will be necessary yet. I think about the fact that I overbuilt when I built nderground, so I don’t want to continue building capacity until it’s necessary.
One service that I would like to offload, since it is costing me money every month, is the database. Right now I’m running an instance of RDS/Postgres. I need the transaction safety that Postgres gives me for the data I store in it, so I can’t move this data to DynamoDB (and it’s eventual consistency).
The RDS/Postgres database runs 24/7, 365.25 days a year, yet the load is very low (as you note, almost all of the traffic is reads). The ideal solution would be a mythical database beast that acted in the way that Amazon Lambda does. The database would only be used when there were CRUD accesses. This would be a database micro-service, running within the Amazon virtual private cloud. The resulting cost would be extremely low. But I have no idea how this could be implemented without writing thousands of lines of custom software. Do you have any suggestions or pointers?