I have a problem for which i'm trying to find a solution for I have a singleton class I use to handle web-socket connections (MQTT). The app gets data from a device during a process via bluetooth and then sends this via MQTT. To make the app compatible for offline use, this realtime data will be saved in DB using Coredata while data is sent, data confirmed as sent would be removed from DB. Now the issue is i'm planning to convert my singleton to make it work concurrently so that if an active process is going on the data would be sent via mqtt and another concurrent process of sending old data from DB using said some singleton class. Is this an ideal solution or I should just make the singleton a normal class and have different class objects for current process and old process being sent via mqtt from DB.