Spring-Boot Starter for Elrond Network
This article is a brief high-level overview of the recently launched elrond-spring-boot-starter-reactive framework by crldev.software, which adds the possibilty of developing and integrating with the Elrond Network using Spring-Boot reactive microservices.
Throughout the years, by introducing significant changes and innovations, Spring has evolved into the most dominant framework in the Java ecosystem.
“Spring dominates the Java ecosystem, with 60% using it for their main applications.”
JVM Ecosystem Report 2020, snyk.io
From my experience, Spring is hands down the most used framework in enterprise development.
In regards to server-side, Spring-Boot is quickly becoming the de facto standard for Java microservices. The elrond-spring-boot-starter-reactive framework is built in a Spring-Boot (with Java 11) starter approach and it’s making use of the autoconfiguration feature, allowing an easier and rapid development. It’s basically a one stop shop for all the components required to interact with the Elrond Network.
Reactive systems have certain characteristics that make them ideal for low-latency, high-throughput workloads.
“Reactive processing is a paradigm that enables developers build non-blocking, asynchronous applications that can handle back-pressure (flow control).”
The Elrond API client is implementing the Reactive Streams specification through Project Reactor (using Spring WebFlux), with the following benefits:
- allowing fully non-blocking operations
- efficient demand management (more work, fewer resources)
- taking advantage of multi-core next-gen processors
- satisfying more concurent calls with fewer microservice instances
The elrond-spring-boot-starter-reactive framework covers over 90% of the Elrond official REST API.
Domain and value objects such as Address, Wallet, Transaction, Nonce, Balance, Signature, Function etc. are included and provide abstracted complexity in creating, validating and using such elements from the network.
The interaction with Elrond Network Gateway is accomplished using a set of components called Interactors (using the Elrond reactive API client).
They each provide functionality based on segregated parts of the network:
Interactors offer detailed API response data from the Elrond Network. The framework can be used for building explorers, backend for DAPPS and other systems using high performance Spring Boot reactive microservices.
An example on how a cloud microservice architecture using the framework might look like:
The framework is open-source, already available on Maven Central Repository and it can easily be added as a dependency in Maven and Gradle build descriptors.
For a more in-depth look on the project, you can find below the GitHub page which provides all the documentation and info required to use the framework, as well as a demo microservice showcasing its features.
GitHub - crldev-software/elrond-spring-boot-starter-reactive: Spring Boot Starter Reactive for…
This is a Spring Boot Starter project for integrating with the Elrond Network, with the goal of achieving an effortless…
Thanks Elrond team for the support!
You can follow my work here: