You need to have some backend API for data processing. As example you can use REST API servers and request/response formatted messages for client-server communication. On the server side you are able to use Ruby apps for request processing and saving into DB
In the activeHangoutChannels function: if you have too many rows then you will have problems with huge data sets in responses. Why don’t you use the pagination pattern for it?