Support for Multiple AIS TCP Data Sources

I'm currently working with a single AIS TCP data source, but I need to implement support for handling multiple sources concurrently. Specifically, I want to ingest AIS data from multiple TCP streams and process them simultaneously in the same application instance.

Questions:

  1. What’s the best approach to configure and manage multiple TCP sources in this setup?
  2. Should each TCP source run in its own thread/process, or is there a more efficient way to handle this, such as using asynchronous IO?
  3. How should the environment variables or configurations be structured to support multiple AIS sources (e.g., multiple SOURCE_HOST and SOURCE_PORT entries)?
  4. How can I ensure that each source stream is properly logged and handled independently, but within the same RabbitMQ setup?