Giter VIP home page Giter VIP logo

boomicacheconnector's Introduction

Boomi Cache Connector

For a version supporting TTL, please check https://bitbucket.org/officialboomi/boomicacheconnector/src/master/

I wanted to share a solution I recently developed to have high-throughput in the Dell Boomi AtomSphere Platform: use of Cache Pattern with In-Memory Data Grid or In-Memory Database (cf IMDG/IMDB. The Connector is designed to allow the use of a Caching/In-Memory Data Grid/Database in Boomi and thus, provide high-throughput APIs and Processes which stored information in Memory and avoid unnecessary calls to the backend system for read/query scenarios.

Boomi Cache Connector is a Generic Connector which will allows you to connect to any Cache system. Initially, it is supporting Ehcache, Redis (Standalone or Clustered) and memcached.

Alt text

The Boomi Cache Connector can accelerate:

  • Alt text RESTFul APIs, the Connector can automatically calculate the caching key based on the HTTP queries and parameters provided by the API Consumer.
  • Alt text Integration Processes, you will provide the key and the value to store.

The Cache Connector will access the Cache system, the Cache system will contains several CacheObjects. And each CacheObject contains a list of key-value Pair. The key is a String and the Value can be any Object (String, JSON, XML...)

Getting Started

Please download the library connector-archive and the connector descriptor connector-descriptor

Prerequisites in Boomi

Setup of the connector

Please go to Setup>Account>Publisher and fill out the information.

Alt text

And then, go to Setup>Development Resources>Developer and create a new Group by clicking on Alt text. On Initial Connector Display Name, you can put Cache Connector or Cache Connector (Beta). The two files to upload are the files you previous downloaded. For the Vendor Product Version, please mentioned the version of the Zip Archive.

Alt text

The result should like that:

Alt text

Use of the Cache Connector

The configuration of the Cache is done in the Connector:

Alt text

Three operations are provided

  • Get: Get information from the Cache system based on a key (can be calculated for APIs)
  • Upsert: Create or Update information in the Cache system, input is key-value pair
  • Delete: Delete a key-value pair based on a key or delete the full Cache Object

Please use the "Browse" Option in the Connector to Generate the Request/Response Profile. You can use Test Atom Cloud or your On-Prem Atom.

Example of RESTFul API

The Following Process is a Web Services Server process getting information from a connector

Alt text

We will update this process to add Caching Shapes with the Caching logics:

Alt text

In the try path, we are using Get operation, the key is automatically computed and the value returned will be the data in the cache.

Alt text

In case of cache miss, an exception with be thrown and the process will go to the Catch Path.

We are calling the back-end system and store (Upsert) the value to the Cache, again the key is automatically computed

Alt text

We are not using the Delete operation here but it is very similar to Get operation and is taking a Key, it you put * as key, it will delete the full Cache object.

Automatic key calculation

When using RESTFul APIs, you can enable the Automatic Key Computation in the operation and avoid providing the key (just put 'auto' in the ID). The connector will use the HTTP queries and params. By default all dynamic process properties starting with query_ and param_ will be used, to change it, set the property in the operation to set the regular expression to filter the dynamic process properties:

Example of APIs call

Call of API with JSON results

The following API calls will store some values in Redis using the automatic key generation. Alt text

Alt text

Alt text

Alt text

Data stored in Redis

You can see the keys generated when we are using HTTP Parameters:

Alt text

Use of Azure Redis Caches

You can use Boomi Connector to connect to an On-Prem Redis and also to Secured Cloud one. On Azure, please select "Redis Caches", select the option of your instance (the Cache Region should be the same as the VM hosting Boomi to minimize latency. Once all the options are selected, click on "Create Redis Cache"

Alt text

Copy the Host name:

Alt text

Copy the primary key:

Alt text

Paste the Hostname followed by :6380 in the Connector Configuration and paste the Key to the Password Value, please don't forget to check "Use SSL".

For additional security, you can also update the Redis firewall to allow only your VMs (and your local network) to access the instance.

Use of Redis on Atom Cloud

Pooling need to be disable to make the Redis connector working on Test Atom Cloud or Atom Cloud. Please set the Maximum Heap or Configuration file to "nopool"

Alt text

Use of ehcache configuration file

You have to place the following content in a file (for instance /opt/Dell_Boomi/Atom/conf/ehcache.xml), go the connector configuration and set the value of Maximum Heap or Configuration file (EHCache) property to the full path of the previous file.

<?xml version="1.0" encoding="UTF-8"?>

<ehcache:config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
	xmlns:ehcache='http://www.ehcache.org/v3'
	xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.1.xsd">

	<ehcache:cache alias="BoomiCache">
		<ehcache:key-type>java.lang.String</ehcache:key-type>
		<ehcache:value-type>java.lang.String</ehcache:value-type>
		<ehcache:expiry>
			<ehcache:ttl unit="seconds">10</ehcache:ttl>
		</ehcache:expiry>
		<ehcache:resources>
			<ehcache:heap unit="entries">100</ehcache:heap>
			<ehcache:offheap unit="MB">1</ehcache:offheap>
		</ehcache:resources>
	</ehcache:cache>
	
</ehcache:config>

Update of libraries

To update the internal libraries, open the Archive Zip with your favorite Archive Management tool (7Zip, Winzip, etc.). Go to the lib folder and update the jars:

Archive

List of libraries

EHCache:

MemCached:

Redis:

boomicacheconnector's People

Contributors

anthonyrabiaza avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.