# Introduction
# Why NULS 2.0
NULS was created to make blockchain very simple. So, in September 2017, the core team defined the modular architecture, which was designed to make it easier for developers to write, and for users to utilize. NULS 1.0 achieves the modular effect at the coding paradigm level, but this design doesn’t solve the problem of tight coupling between modules. Developers who want to use a module or participate in the development of a module would need to understand the design of other modules associated with it and can only use a specific language for the development of their module. This is not friendly to the NULS vision for the technical community which anticipates intense, active participation in the design and development of NULS architecture, as well as the user’s supply of simple and low-cost modules.
Since its conception in 2017, NULS has been committed to establishing a community-driven open-source project. This community-driven route for development is what stimulates continuous innovation and distinguishes blockchain projects from other commercial projects. Continuous iteration and innovation is both inherent and inevitable in open source projects, and is also a novel and valuable feature of blockchain. In order to allow ease of participation to the open-source and technical community for developing on NULS, and to establish ease of use provided by the “Module Repository”, which is an important part of the revolutionary product “Chain Factory”, the following difficulties had to be overcome:
Loosened coupling and removal of dependencies between modules;
Modules must be easier to extend, modify and replace. Each module must be simple and basic; and modules should not encompass the overall complexity of blockchain applications;
Complete elimination of programming language limitations.
The core team introduces an innovative microservice concept in the infrastructure design of blockchain, which designs software applications as service suites that can be deployed independently. This concept introduces the most advanced ideas in the 1.0 architecture and transforms them with enhanced flexibility into a new modular design, making modules as flexible as programs that can start independently. This new modular architecture enhanced with microservice suites, that have no programming language limitations, is called NULS 2.0. Modules in this architecture enjoy even more decoupling, while the feature of multi-language development greatly improves the contribution of code and the convenience of users. At the same time, it is even easier to extend, since the enhanced design of modules supports distributed deployment and hot module replacement. Both Chain Factory and Cross-Chain Modules are being developed in coordination with this architecture.
# Philosophy of Design
The NULS2.0 microservice architecture evolved over time. For more information on how it came about, read the documentationNULS2.0:Philosophy of Design.The documentation details the NULS2.0 evolutionary path。