Spring-Boot Starter for Elrond Network

Elrond Network is a highly scalable, fast and secure blockchain platform for distributed apps, enterprise use cases and the new internet economy. The two primary objectives is to build the backbone for a high-bandwidth, low latency, transparent architecture that enables a different type of economy. For development and integration with the network, there are multiple SDKs available such as erdpy (python), erdjs (javascript), erdgo (go) and others.

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).”

spring.io

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.

Thanks Elrond team for the support!

You can follow my work here:

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store