Trull supports the modular design of event-driven systems from building blocks. Successively complex systems can be built from basic components (such as simple event listeners and event sources) and combinators (such as concurrent composition, sequential composition, branches, loops, etc.)
Trull supports the sequential, non-overlapping processing of events by a single thread. Therefore, explicit multithreading or concurrency control is unnecessary in most cases. In addition, the Trull Task framework provides support for and seamless integration with components that use explicit threads to implement autonomous behavior.
Trull components are compliant with the JavaBeans specification and integrate seamlessly with Swing and other suitable JavaBeans. In particular, Trull components can be assembled and managed by lightweight bean containers such as the Spring Framework; such containers effectively provide an XML-based front end for Trull. The wristwatch demo illustrates this combination of Trull and Spring.