The number of relays that you can control are limited only by the number of digital IO pins on the NodeMCU. In this case, I have used a Wemos D1 mini, but you can use any other NodeMCUs.
By using a fauxmo server and not using IFTTT and MQTT brokers, our reliance on third party services is removed and this provides better control and privacy.
The code that I have attached has initialization for three devices, but you can expand it depending on the availability of IO pins. Also, you can use as many NodeMCUs as you can, but the only criteria being that the device names should be non-identical (two devices cannot be assigned same names). By creating groups on the Alexa app, you can simultaneously control multiple devices.