Reactive Blocks


Screenshot of Reactive Blocks

Reactive Blocks is a visual model-driven development environment supporting formal model analysis, automated code generation, hierarchical modelling, and an extensive library of ready-to-use components for the Java platform. By combining re-usable blocks, a developer can create complex applications graphically.

Key Benefits

Reactive Blocks (screenshot-menu) Visual application development makes it more intuitive to grasp complex applications at a glance. The diagrams used to build Reactive Blocks applications are based on UML Activity Diagrams, an established standard, and are thus easy to recognise and share.
In traditional programming, documentation and implementation are separate activities which can lead to differences between both. As the visual code of an Reactive Blocks application in itself is the documentation, there can never be a gap between documentation and implementation.
Because the visual definition of an application is more intuitive to understand, it eases the communication between the different areas of a company and with clients. The general understanding of a visual application requires no programming knowledge, this ensures that management, developers, and customers are always ‘on the same page’.
Blocks of BlocksBuilding applications from blocks leads to a cleaner architecture because everyone is following the same principles. Building applications hierarchically from blocks-of-blocks allows simple separation of concerns and thus leads to a more maintainable system structure.
Reactive Blocks allow top-down as well as bottom-up design. In the former, the contract of a block is defined first followed by the detailed implementation of the block. For the latter an application can be composed from ready-to-use building blocks available in our extensive library.
Following the micro-service architecture pattern, an application can be assembled from multiple independent services implemented as Reactive Blocks applications. A clean architecture is further supported by the possibility to package the Reactive Blocks micro-services as OSGi bundles.
Rreactive Blocks (screenshot-analysis) The formal stateful analysis helps to spot mistakes and errors early during development. Common issues like unexpected termination of a block which requires a coordinated shutdown are highlighted right-away.
The analysis uses the state space as defined by the contracts of the blocks. It thus can be efficiently applied even before the code is ever executed. It can directly highlight which exact situation leads to a problem which makes it easy to identify the exact cause and possible solutions. Additional the Reactive Blocks development environment offers quick-fixes for a range of common issues which can be applied with a single click.
Block Documentation Building blocks resemble reusable application modules but they go beyond what shared libraries usually provide. Blocks encapsulate code and they also formally specify the possible interactions with the contained code. This forms the basis for better documentation, formal analysis, and thus easier reuse. Similar to other Java libraries, blocks also provide detailed documentation describing their overall function and the expected inputs and outputs of individual slots.
The Reactive Blocks development environment offers an integrated search engine to quickly find the right block for the problem at hand. Your application needs to subscribe to an MQTT broker? Simply search for ‘mqtt’, download the library, and drag the subscriber block into the application.
Reactive Blocks offers major benefits for software development teams:
Because of the easier visual understanding of existing applications the integration of new team members is easier. The impact of growing a team is reduced and it can reach increased productively faster.
The visual style of developing also simplifies the cooperation in heterogeneous teams: A part of the developers focuses on the implementation of low-level blocks representing hardware drivers while another group develops the middle-layer of an application. Yet another team works independently on the overall integration of all building blocks into the final application.
Based on the diagram definition of an application, Reactive Blocks auto-generates standard Java source code. This allows the integration with any Java based IoT stack.
Additionally Reactive Blocks also offers tight integration with OSGi based IoT stacks, allowing dynamic starting, stopping, and re-configuration of applications.
Bitreactive is an active member of the Eclipse IoT Working Group which offers an ecosystem of companies and individuals that are working together to establish an Internet of Things based on open technologies.

With Reactive Blocks you gain access to a comprehensive library of ready-to-use building blocks. It offers you all the essential blocks to get up and running quickly.

  • Need to buffer some elements? Drag in the ‘Buffer Eager Simple’ block.
  • Need to publish data via MQTT? Use the ‘MQTT publish’ block.
  • Want to access an ModBus sensor? There is the ‘ModBus Simple’ block for that as well.

Community Edition


  • Visual application development
  • Formal stateful analysis
  • State space animation
  • Library of ready-to-use Building Blocks
  • Development of public-shared Building Blocks
  • Development of private Building Blocks
  • Team sharing of private Building Blocks
  • Code generation for Java Standard Edition
  • Code generation for OSGi
  • Code generation for Kura
  • Code generation for ESF
  • Professional support

Download Reactive Blocks

Professional Edition


  • Visual application development
  • Formal stateful analysis
  • State space animation
  • Library of ready-to-use Building Blocks
  • Development of public-shared Building Blocks
  • Development of private Building Blocks
  • Team sharing of private Building Blocks
  • Code generation for Java Standard Edition
  • Code generation for OSGi
  • Code generation for Kura
  • Code generation for ESF
  • Professional support

Order Professional License