This article is a translation of the German IOTA Beginner’s Guide by Schmucklos.


Bee is a production-ready implementation of the Core Client in the Rust programming language. Parts from all previous developments are merged into a unified platform solution.

The goal of Bee is to develop a standardized enterprise-ready modular EEE software architecture.

EEE stands for “Environment Entity Effect“, which is an event-driven software architecture. It provides the entire communication infrastructure between software components.

This software architecture includes a publish / subscribe messaging mechanism that allows asynchronous communication across all software modules without direct dependency on each other, which allows the system to be very modular and loosely coupled.

Decoupling prevents entities such as individual software modules from interacting directly with each other, instead allowing entities to output “effects” (usually strings) at a specific location (environment). Other entities (modules) can subscribe to these environments to receive any “effects” passed to them. This allows the different modules to subscribe to each other. For this the issuing entity does not even need to know of the existence of its subscribers.

This software architecture is very powerful and overall more resilient to partial system failures due to the publish / subscribe model. This model allows high extensibility so that software modules (plug-ins) can be easily added without damaging or modifying the existing code.

Modular design

At the end of the development Bee will be the reference implementation. It can be used to run other Node software that conforms to the protocol rules.

With the modular event-driven software architecture (EEE), it will be possible to customize Bee to run all types of nodes for different requirements (Full, Light, Custom, etc.) through the extensions of different software modules.

For example, this would allow the new IOTA Streams to be implemented only when needed. It will even be possible for third-party modules to be implemented.

Also the implementation of a bridge extension for cross-language support is much easier than with the old IXI modules (Bridge.ixi). Thus, also with Bee, every developer should be able to write software modules in the desired programming language, which has a positive effect on the overall development.

Bee effectively becomes an “IOTA Node factory”. So it makes sense to use Bee as a starting platform for customized Node software and to adapt it, rather than programming from scratch.

Lightweight Software

Bee runs on small microdevices, using even fewer system resources than the old Ict. Bee works without fixed minimum requirements for Ram etc. It uses the system resources that are available. Therefore it will be possible to run Bee on a limited device with only 128 MB RAM. In that case it will inevitably not store as many transactions as when Bee is run on a 64 GB RAM server.


Original source

Last Updated on 16. February 2021