The Python logic works entirely outside FSX, in the Couatl.exe, which runs alongside FSX.
This means all our Python scripts will run on a different core than FSX, and Windows itself will handle the scheduling. On a modern multi-core system, there's a *lot* of available cpu power which FSX doesn't use, but in-process modules ( FSX addons using .DLL ) will run on the same core as FSX, potentially impacting performances or possibly slowing it down or creating small pauses, when they do complex calculations. With our approach instead, even when GSX should start a complex calculation, it won't be able to slow down FSX, because it runs on a different thread which is allocated on one of the spare core which FSX doesn't use.
On top of that, on a 64 bit OS, each process can use up to 4GB of RAM so, FSX and *all* its .DLL modules (including 3rd party modules AND gauges) will take from this 4GB pool. Instead, since Couatl.exe is a different process, it has its *own* 4GB memory space, separated from the FSX one, which means we can allocate lots of ram without worrying about causing Out of memory errors, which plague FSX when used with complex addons that have most of their code in .DLL and .GAU files.
We also have a .DLL module, the Addon Manager, but its scope is very limited right now, since it's only used to give Couatl access to the few things that can't be read using Simconnect, so they are only accessible by an in-process .DLL, but it's a very lightweight work, no complex code is running inside the Addon Manager anymore, most of the work is done by Python scripts running under Couatl.exe.
Is not the simplest of the architectures, but it's what grants us the most performances, and can grow with many new features, without affecting FSX memory consumption or possibly slowing it down if scripts becomes too complex, so it has lot of room for expansion, considering we'll get more and more cores in the future, memory is always cheaper, and most users finally upgraded to a 64 bit OS, which is the best option for FSX right now.