> For the complete documentation index, see [llms.txt](https://docs.esignet.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.esignet.io/readme/technology/technology-stack-j21.md).

# Technology Stack J21

eSignet is built using the below tools and technologies.

### Services and Rest Endpoints

<table><thead><tr><th width="144.60546875">Tool/Technology</th><th width="151.22265625">Version</th><th width="298.390625">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://www.java.com/en/">Java SE 21</a></td><td>OpenJDK 21</td><td>Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.</td><td><a href="https://www.oracle.com/in/downloads/licenses/binary-code-license.html">Oracle Binary Code License</a></td></tr><tr><td><a href="https://spring.io/projects/spring-framework">Spring Framework</a></td><td>3.2.3</td><td>Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.</td><td><a href="https://github.com/spring-projects/spring-framework/blob/main/LICENSE.txt">Apache License 2.0</a></td></tr><tr><td><a href="https://projectlombok.org/">Lombok</a></td><td>1.18.42</td><td>Project Lombok is a Java library that automatically plugs into your editor and build tools, spicing up your java.</td><td><a href="https://github.com/projectlombok/lombok/blob/master/LICENSE">Lombok License</a></td></tr><tr><td><a href="https://logback.qos.ch/">Logback</a></td><td>1.2.3</td><td>Logback is a logging framework that provides a fast, reliable, and highly configurable solution for generating logs in Java applications.</td><td><a href="https://github.com/qos-ch/logback/blob/master/LICENSE.txt">Logback License</a></td></tr><tr><td><a href="https://www.openapis.org/">openapi</a></td><td>2.6.0</td><td>The OpenAPI Specification is a specification language for HTTP APIs that provides a standardized means to define your API to others.</td><td><a href="https://github.com/OAI/OpenAPI-Specification/blob/main/LICENSE">Apache License 2.0</a></td></tr><tr><td><a href="https://docs.mosip.io/1.2.0/modules/keymanager">kernel-keymanager-service (MOSIP)</a></td><td>1.3.0</td><td>The Key Manager Service provides secure storage, provisioning and management of secret data. It provides all the cryptographic operations like encryption/decryption and digital signature/verification making one trust store for all partner trust path validation.</td><td><a href="https://github.com/mosip/keymanager/blob/master/LICENSE">Mozilla Public License 2.0</a></td></tr><tr><td><a href="https://react.dev/">React JS</a></td><td>18.2v</td><td>React lets you build user interfaces out of individual pieces called components.</td><td><a href="https://github.com/facebook/react/blob/main/LICENSE">MIT License</a></td></tr></tbody></table>

#### Storage

<table><thead><tr><th width="143.8828125">Tool/Technology</th><th width="99.9921875">Version</th><th width="358.61328125">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://www.postgresql.org/">Postgres</a></td><td>15</td><td>PostgreSQL also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance.</td><td><a href="https://opensource.org/license/postgresql/">OpenSource License</a></td></tr><tr><td><a href="https://redis.io/">Redis</a></td><td>6.0</td><td>Redis is a open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. Redis can be replaced with any cache compatible with spring-cache.</td><td><a href="https://redis.io/docs/about/license/">BSD License</a></td></tr><tr><td><a href="https://kafka.apache.org/">Kafka</a></td><td></td><td>Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.</td><td><a href="https://github.com/apache/kafka/blob/trunk/LICENSE">Apache License 2.0</a></td></tr></tbody></table>

### Deployment

Insert blockBlock controls

<table><thead><tr><th width="137.91015625">Tool/Technology</th><th width="134.80859375">Version</th><th width="308.66015625">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://maven.apache.org/">Maven</a></td><td>3.6</td><td>Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.</td><td><a href="https://apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></td></tr><tr><td><a href="https://www.docker.com/">Docker</a></td><td>20.4 and above</td><td>Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.</td><td><a href="https://www.docker.com/community/open-source/">OpenSource License</a></td></tr><tr><td><a href="https://www.npmjs.com/">npm</a></td><td></td><td>npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently.</td><td><a href="https://docs.npmjs.com/policies/npm-license">Artistic License 2.0</a></td></tr><tr><td><a href="https://github.com/mosip/kattu">kattu (MOSIP)</a></td><td><p>master and</p><p>master-java21 branch</p></td><td>All workflows necessary to build the project is kept here</td><td></td></tr><tr><td><a href="https://github.com/mosip/mosip-helm">Helm Chart (MOSIP)</a></td><td>depends on eSignet version</td><td>Helm helps you manage Kubernetes applications - helps define, install, and upgrade even the most complex Kubernetes application. Charts are easy to create, version, share, and publish — so start using Helm and stop the copy-and-paste.</td><td></td></tr></tbody></table>

### Testing

<table><thead><tr><th width="115.21484375">Tool/Technology</th><th width="98.62890625">Version</th><th width="366.18359375">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://junit.org/junit5/">JUnit</a></td><td>5</td><td>JUnit is a unit testing framework for the Java programming language.JUnit has been important in the development of test-driven development and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit.</td><td><a href="https://junit.org/junit4/license.html">Eclipse Public License 1.0</a></td></tr><tr><td><a href="https://learning.postman.com/docs/collections/using-newman-cli/command-line-integration-with-newman/">Newman</a></td><td>TBA</td><td>Newman is a command-line tool that allows you to run Postman collections and automate API tests. It is ideal for integrating API testing into CI/CD pipelines and provides detailed test reports for automated workflows.</td><td><a href="https://apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></td></tr><tr><td><a href="https://www.postman.com/">Postman</a></td><td></td><td>Postman is an API platform that simplifies the API lifecycle and streamlines collaboration. You can browse the largest network of public APIs, create and share your own workspaces, and access governance rules for API quality.</td><td></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.esignet.io/readme/technology/technology-stack-j21.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
