Cloud X 2023 Award

Gilhari Microservice Framework
for JSON Persistence

Gilhari Microservice Framework

Gilhari™ Introduction

GilhariTM is a microservice framework to provide persistence for JSON objects in relational databases. This microservice framework, available in a Docker image, is configurable as per an app-specific object and relational models. Gilhari exposes a REST (REpresentational State Transfer) interface to provide APIs (POST, GET, PUT, DELETE…) for CRUD (Create, Retrieve, Update, and Delete) operations on the app-specific JSON objects.

Gilhari, meaning squirrel in Hindi, transfers JSON data between an app and a database.

Gilhari can be used to leverage existing data in legacy relational databases.

Architecturally, an app-specific Gilhari microservice, whose functional focus is to exchange JSON data with a relational database, typically fits behind other app components (perhaps another microservice and/or an API gateway) that take care of business logic, authentication, and authorizations. A Gilhari microservice may be deployed in a container orchestration system like Kubernetes for scalability.

Here are some of the compelling benefits of using Gilhari:
  • Enable rapid development of new cloud and on-premises applications by eliminating the complexity in developing flexible microservices for data integration
  • Can simplify creation of data pipelines from SaaS sources exporting data in JSON format into JDBC compliant databases/data warehouses
  • Can help in easily retrieving data in JSON format from any JDBC compliant databases for downstream consumption
  • Help mobile clients exchange JSON data with relational databases residing on remote servers
  • Easily ingest IoT (Internet of Things) data for storage, analysis, reporting, and device control
  • Leverage existing schema and existing data. No reliance on either absent or non-standard native JSON data types in a database
  • Help easily offer out-of-the-box RESTful data integration components customized for standard data models in various vertical industries like banking, finance, energy, government, manufacturing, healthcare, insurance, telecommunications, and transportation
  • Simplify desktop and mobile application integration with cloud data in conjunction with Software Tree’s lightweight Object Relational Mapping (ORM) products for Java and Android
  • Accelerate introduction of new cloud services
RESTFul APIs for JSON persistence:

The Gilhari framework presents template based REST APIs that are automatically adaptable to an app-specific object model. Here are some examples of the RESTful APIs exposed by Gilhari for an object model consisting of Employee objects.

REST Operation URI Body Comments
GET http://localhost:80/gilhari/v1/Employee Retrieves all Employee objects
GET http://localhost:80/gilhari/v1/Employee?filter=exempt=true Retrieves all Employee objects who are exempt
GET http://localhost:80/gilhari/v1/Employee/getAggregate?attribute=id&aggregateType=COUNT Gets the count (aggregateType=COUNT) of the "id" attribute for all the Employee objects.
POST http://localhost:80/gilhari/v1/Employee/ Employee objects in JSON format Saves one or more Employee objects specified in the Body of the request
PUT http://localhost:80/gilhari/v1/Employee/updateEntity Employee objects in JSON format Updates one or more Employee objects specified in the Body of the request
PATCH http://localhost:80/gilhari/v1/Employee?filter=id=39 {"newValues":["exempt","false"]} Updates the exempt value to “false” for the Employee with id=39
DELETE http://localhost:80/gilhari/v1/Employee/deleteEntity Employee objects in JSON format Deletes one or more Employee objects specified in the Body of the request
DELETE http://localhost:80/gilhari/v1/Employee?filter=exempt=true Deletes all the exempt Employee objects

More details on the syntax and semantics of the REST APIs are provided here and in the Gilhari SDK. You may also find the Gilhari API details in the POSTMAN documentation by importing the "Gilhari REST API" collection in POSTMAN from the following link (File -> Import -> Import from Link): https://warped-rocket-9192.postman.co/workspace/Team-Workspace~a872b0cc-7dae-40af-872c-aec9a1b2d643/collection/5675780-eade11a5-d5d7-4475-8037-8f8461238d6b?action=share&creator=5675780