Butterfly Object Space
Low-code middleware solution to apify your datasets and monitor their life-cycle
Apify the datasets
Butterfly Object Space is placed on top of your datasets to offer a uniform Object-Oriented API and establish a data lake
Monitor the datasets life-cycle
Butterfly Object Space automatically updates event streams (push notifications) and maintains audit logs for tracking all datasets changes
Use Cases
For Enterprises and data-centric Organizations
Use the Butterfly Object Space to realize your data lake solution
For Software Vendors
Incorporate the Butterfly Object Space into your microservices, enterprise, or custom software solution to cut-down costs and reduce Time-To-Market
For any organizations
Use the Butterfly Object Space as a low-code dataset apification solution
Key concepts
Butterfly objects
Well-typed, runtime manifestations of data items, addressable through their store name and identifier
Butterfly type libraries
Definitions of butterfly object models organized in namespaces
Butterfly record & asset stores
The low-level mechanisms that map underlying records and payloads to Butterfly objects (and vice versa)
Supported record & asset stores
Relational databases
All major relational databases are supported, including but not limited to MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, and Oracle database
NoSQL datastores
Currently Elasticsearch and MongoDB are supported
Other local or cloud-based datastores
Local filesystems, JSON and Excel files as record stores, S3-compatible cloud object storage, and more
Butterfly Object Space API
An overview of the operations supported by the middleware
List available stores
Retrieve available object types
CRUD operations
Asset operations
Bulk operations
Search operations
Data Export
Additional operations
Monitor the datasets life-cycle
Event streams & Audit logs
An overview of the datasets monitoring capabilities of the Butterfly Object Space
Event streams
Audit logs
Smooth, low-code development experience
Write your Butterfly object typelibs
Define your Butterfly object types using a simple XML or JSON notation. You can build upon existing typelibs to define your new ones (through inheritance). Butterfly provides the niovity.butterfly.core typelib which defines a set of core Object types (like Node, File, Dictionary, etc). You can reuse your typelibs across your projects.
Connect your datastores using Butterfly extension packs
If your datastore is supported, you connect it to the Butterfly Object Space by configuring the respective Butterfly extension pack
Use the Butterfly SDK
If your datastore is not supported, you need to implement the respective RecordStore or AssetStore mechanism of the Object Space (in Java) using the Butterfly SDK
Rapid Java application development
Butterfly automatically generates Java code to speed up Java application development. It generates (a) Java bindings for your typelibs, (b) Java clients for the middleware API
Rapid Typescript application development
As above, but for Typescript