Skip to content

Coding guidelines

Stephen A. Ramsey edited this page May 28, 2026 · 7 revisions

Some hard-learned lessons

  1. Lazy module import is to be avoided if at all possible, since ARAX runs in a multithreaded environment. This avoids nasty race conditions in the context of circular imports (see below), which is probably the main reason lazy import is used. It is strongly preferred to eagerly import modules when the application server is starting up in single-threaded mode.

  2. Circular module imports, while sometimes necessary, should be avoided if possible (requires at least one lazy import, and see item 1 above).

Clone this wiki locally