If there is a manner in which technology mimics nature, it is by the general rule that if a product does not evolve and adapt to its environment, it dies. This is probably one of the very few constants our society lives by and can count on.
Software is not an exception to this rule. Interestingly, it has borrowed a lot of tricks from nature in order to scale and increase its complexity. This article will explore (with simple analogies) how software applications have evolved and why NULS 2.x will be positioned at the top of the crypto food chain.
2] In the Beginning — Monolithic Applications
Life appeared on Earth approximately 4.3 billion years ago. Although there is no standard definition on what exactly life is, one of the few things scientists agree on is that every organism is composed by indivisible units called ‘cells’, and these cells have encoded the basic functions every organism relies upon to survive.
In the beginning, only organisms with just one cell existed and the basic processes they performed were:
- Replication: The ability of cells to reproduce.
- Metabolism: They transform an input to a useful output, like nutrients into energy.
A monolithic application is like a fat, slow, single-cell organism. All functions are encoded in one single unit and exposed to the environment. If the cell is damaged the whole organism dies, therefore making copies of the application is an all or nothing operation. As a result, replication is as inefficient as it can be, and changing basic functionality is a laborious process in which the whole organism can be compromised by just a single mistake.
This type of application has a practical limit on how much it can evolve and grow over time.
Amazingly, a lot of monolithic applications are still in operation having survived this inefficiency!
3] Data Protection — Monolithic Applications Using Object-Oriented Languages
After some time, eukaorytic cells appeared on the scene. These cells could protect the data that encodes their existence (RNA / DNA) inside a nucleus, no longer exposing this critical part directly to the environment thereby assuring a higher probability of survival.
In software, development languages capable of hiding and encapsulating important data from other parts of the application are called Object-oriented. Thanks to this advancement, applications were able to grow faster in complexity and were less error prone.
But the application itself is still composed by a big, fat, slow single cell.
Monolithic Application Encapsulating Data From the Environment
Most projects in crypto are developed using Object-oriented techniques. Unfortunately, that’s the end of the evolution line for most of them!
4] Subdivision of Functions — Modules
As evolution continued, cells started to increase the frequency and complexity of their vital functions and began to develop well-defined semi-independent parts, in which each part became responsible for a specific process.
In a similar way, some software applications are split in logical units whereby each one is responsible for execution of a specific set of functions. These units are called Modules. Thanks to modular development, it is a lot more efficient for many developers to work on the same product simultaneously, and changing functionality is faster because modules make it easier to isolate and focus on specific parts of the program.
The drawbacks with Modules are:
· All modules must be created at the same time as the entire application.
· If a module changes, the whole application needs to be stopped and deployed again.
· Even though modules are more efficient, the application is still one big fat cell.
· If a module fails, it can compromise the entire application.
· Modules need to be written in the same language as the entire application.
It was only recently that some projects in crypto began to talk about modularity, however very few have concrete steps in their roadmaps. NULS 1.x is already 100% modular and its excellent design is one of many primary reasons that it was developed in record time with no critical issues.
5] Changing Functions During Lifetime — Plugins
Stem cells grabbed headlines for several reasons, but one of the most important is their ability to generate cells with different functions throughout the lifetime of the cell. Similarly, some applications have the ability to change functionality while they are running by attaching special modules called plugins.
Well-designed applications using plugins can greatly increase their availability because their functionality can be upgraded during execution. This solves the first two issues described in section 4], but does not solve the other three, and unfortunately, it adds another one:
For several reasons, it is difficult to design complex applications that use plugins and still endure the test of time, because in practice, large applications tend to be refactored again causing them to lose the benefits of plugins in the first place. Even so, the plugin is still a great step toward the evolution of software development.
Application with plugins…
Very few blockchain projects use this technology, and for those who do it is too soon to determine if it has been implemented efficiently.
At some point, NULS 2.x will use this technology for some specific modules.
6] Multicellular Organisms — Microservices
Nature’s preferred method of choosing the evolutionary path is by messing up thousands or even millions of times until by pure chance, an organism becomes better suited to adapt and survive in its environment. This process is called mutation. One great example of this is that at some point organisms evolved and beyond the single cell and developed multiple cells, then multiple kinds of cells, thereby acquiring the ability scale to unprecedented levels and even further increase complexities.
Cells need to perform more processes in order to live and work in a more complex environment. The processes that are important for our purposes are:
- Communication: Cells can communicate between each other using a process called cell signaling.
- Mobility: The ability to move from its physical position to another where its functions are required. One example is white blood cells moving to open wounds to destroy pathogens we call germs.
A microservice is similar to the single cell within a multi-cellular organism. It functions as a complete individual living application with its own life cycle, which can be placed in different physical locations and can also be replicated on demand with a well-defined and unlimited set of functions.
Microservices solve all of the problems described in section 4] and as we will see, our implementation will add a lot more features because microservices is the anti-thesis to the monolithic application.
Aside from NULS 2.0, there are no other crypto projects built using this technology.
In this context, Nulstar is like the nervous system in the sense that it coordinates processes from microservices and gives them necessary information to talk to each other. Messages that go from or to the application need to pass through Nulstar, which also performs basic validations of data to prevent possible attacks.
7] Different Cells Work Together and Can Now Talk to Each Other — Multiple Development Languages
The human body has 200 different types of cells that execute diverse functions and need to be built differently to ensure the ability to communicate with each other without compromising their individual work and specific processes.
Standard applications need to be written in a single development language reducing significantly the amount of developers that can participate in the project. With microservices this hurdle no longer exists since they can be written in any language available, provided they communicate to each other using a standard dialect. NULS 2.x implements a very easy to use and understand dialect that all microservices must learn.
Of the 2100+ crypto and blockchain projects currently available, only NULS 2.x has this cross-language feature. This ability will allow NULS to gather different developers from completely different backgrounds which will accelerate the development of the entire ecosystem.
8] Meet the Dolphins! — Near Zero Downtime
In nature, some creatures evolved to develop the most curious and unique traits. The dolphin is not only recognized because of its intelligence, which is among the top in the animal kingdom, but they also receive special recognition for their ability stay alert and swim even when resting. They do not sleep in the standard definition of the word. They shut down one hemisphere of their brains and the opposite eye (which the hemisphere controls), while the other hemisphere and an eye remain watchful.
A system developed using Nulstar framework will have the similar ability to perform upgrades without the need to shut down the entire application. For external services, the system is working almost continuously, 24 hours a day for 365 days of the year.
Near Zero Downtime
No system in the crypto or blockchain sphere has this ability. For example, exchanges need to shutdown for hours just to perform scheduled maintenance or an upgrade.
How much would these companies like to avoid losing tens of thousands of dollars in these processes by simply developing around the NULS system?
9] Amazing Creatures: Starfish — Self-Healing, Regenerative Capabilities
Many species of starfish have the ability to regenerate new limbs when they are lost to a predator. Some can even regrow an entire new body from a single arm!
Unlike a starfish that needs months to finish the regeneration process, Nulstar will have the ability to clone and restart microservices immediately if they fail for any reason. This feature can also be used to start different instances of the same microservice in different physical locations when parallel computation power is needed.
Worldwide, very few systems are developed with these capabilities which can potentially save hundreds of thousands of dollars for companies.
10] Genetic Manipulation, Evolution on Steroids — Super Fast Microservices Upgrade Cycle
According to Wikipedia, genetic manipulation could be defined as “a set of technologies used to change the genetic makeup of cells, including the transfer of genes within and across species boundaries to produce improved or novel organisms”. Although gene manipulation carries with it significant controversy, it has the potential to create amazing hyper complex organisms that are superior to everything nature has provided thus far. One example is disease-resistant crops, and other plants resistant to poor environmental conditions, etc.
Microservices have the inherent ability to adapt faster and more consistently than any other software technique known to mankind by dividing a very complex application into independent executing parts that allow developers to pinpoint the exact location of the code they want to change without compromising any other part of the application.
Evolution on Steroids
Genetic manipulation may probably need many decades to perfect its methods. Fortunately, this is not the case with software. Applications can already accelerate their evolution thanks to microservices architecture.
11] Final Thoughts
Crypto and blockchain is probably one of the most rapidly evolving areas in technology. New ideas are constantly appearing and deployed, and as a result companies and individuals do not feel secure with long term investment of a single technology. NULS 2.x and Nulstar represent years of hard work and constant research in this area, and as exposed in this article, the NULS long term case is not only about the current modular technology it uses presently (which is state of the art) but through microservices it enjoys the ability to adapt and evolve throughout time, incorporating new technologies as easily as they appear, faster than any other crypto project in existence. Therefore, we can confidently state:
No matter which technology appears in the blockchain development space, NULS adapts and assimilates it faster, and always wins the race.