title: Python multiple processes, inter-process communication, architecture
body: <p>I started doing a simple command line chat, then I learned about tkinter and added GUI, then I added voice support.</p>
  
  <p>As soon as I learned that python threads suck, I started using Processes and pipes for inter-process communication.</p>
  
  <p>The main process, launches 3 processes to deal with: GUI, sound input, sound output.</p>
  
  <p>The main process connects to the server, sends/receives messages (updating the GUI).<br>
  The GUI process runs the tkinter loop and communicates with the main process when needed.  </p>
  
  <p>The way I call procedures in another process is by sending, through a pipe, the name of the method and arguments for it, which the receiving process will execute. There is no return, only calls.</p>
  
  <p>I would like know the wrongs of this architecture and alternatives.
  What design patterns exist for this problem?</p>