A arquitetura geral do sistema foi construída de forma modular, permitindo que um programador possa escolher quais tecnologias e modelos deseja usar para cada bloco do fluxo de processamento: