====== 03 Design Decisions ====== [[https://forums.ni.com/t5/Past-NIWeek-Sessions/TS9723-DQMH-Decisions-Behind-the-Design/ta-p/3316019|Presentation on Decisions Behind the Design]] ===== Queues vs Events ===== * events = public (external) * queues = local (internal) * easier to debug * Advantages of events * broadcast * doesn't matter if there are listeners (1 or more) or not * one event queue per listener * no listener - no queue * events in same queue (1 event structure) can have different data types * errors are edit time * register/unregister at runtime ===== Strict Message Typing ===== * hard to search strings * easy to find VIs * easy to show which VIs are available (API) ===== API Testers ===== * test modules individually, outside application * can sniff messages (also in .exe)