SugarCubes is a set of Java classes which provides a simple and structured approach to concurrency. It offers a powerful and modular communication mechanism based on instantaneously broadcast events. The semantics of SugarCubes code is deterministic and does not depend on arbitrary choices made by the execution platform. SugarCubes gives programmers a sound and fine control over execution; for example, reactive instructions can be preempted in a completely clean way. The paper compares thread-based programming with SugarCubes programming. It shows that SugarCubes is simpler and more structured than the standard Java threading mechanism.Disadvantages of course also exist.• No real parallelism. SugarCubes does not presently support parallelism, which maps threads to distinct processors. All reactive instructions run by a given reactive machine are executed by the same Java thread, and thus by the same processor. • Efficiency to be increased. The current version of the SugarCubes code is not optimized. There remains work to be done to get better execution performance. One could, for example, embed reactive instructions directly in the Java virtual machine. • Potential fragmentation problems. Executions of reactive instructions are divided into time fragments called instants. How long an instant lasts depends on the statements actually executed.The aim of the reactive approach is to propose a flexible paradigm for programming reactive systems, especially those that are dynamic (that is, the number of components and their connections can change during execution). SugarCubes implements the reactive approach in Java.