Title | Summary |
---|---|
Overview | New to lightblue? Start here! |
Specifications | The language and REST specifications for lightblue. |
User Guide | How to use lightblue including getting started quickly on OpenShift. |
Developer Manual | Want to contribute? Take a look at the other books and then dive into this manual! |
Cloud focused data services with dynamic querying, versioned schemas, and robust security.
Developing enterprise services for access to data (CRUD) can be deceptively simple. Just write something that gives access to the data you need. Done! The challenge is how do to deal with growth over time and not replicate the data access layer for every component.
One of the time sinks for developers is adding new features for clients of their software. To address this for data access, lightblue provides a robust and very capable API, supports a growing number of datastores, and enables changes to data models without impacting existing clients through the use of versioned metadata.
The REST API of lightblue is designed to do everything a client could want. There are some key points that the API addresses:
Clients do not care where data is stored as long as it is available and secure. With lightblue we have controller implementations for:
Not seeing a contoller you need? We welcome new implementations and contributions in general! From opening a request for enhancement to writing code, your ideas and help are greatly appricated.
All data in lightblue is controlled by its metadata. Think of this as all the DDL for a table in a relational database. A specific version of this metadata provides a view of the stored data. You can have many versions of metadata active at a time, providing different clients with different views of this data. Key points to remember:
One of the challenges with maintaining enterprise applications is ensuring they are always on. When any change to a data structure requires application deployments it requires operations resources and can require outages to execute. With lightblue any changes to a data structure is simply a change to metadata.
Example workflow to update a single field without lightblue:
Example workflow to update a single field with lightblue:
Some other benefits beyond simply reducing operations overhead are:
If lightblue enables data access across many datasources and technologies we also need to provide tools to support that stack! Enter the management applications:
Each of the applications provides access to the corresponding service layer. The point of them is provide a nicer interface to the service layer without having to deal with the service directly. Each application can be secured independent of the service tier, as noted in the diagram.
The license of lightblue is GPLv3. See LICENSE in root of project for the full text.
Dependency | Why | License |
---|---|---|
Jackson | Java library for processing JSON documents. Use in complicated cases where processing is required on the JSON document. | Apache License, Version 2.0 |
JSONassert | Used in unit tests to compare JSON documents before and after processing. Useful for verifying parsing and type conversions (JSON -> Java -> JSON for example) | Apache License, Version 2.0 |
json-schema-validator | Validation of JSON documents against a JSON schema. Similar to XML Schema validation. | LGPLv3 or later |
Flapdoodle Embedded MongoDB | In memory MongoDB used in unit tests to test against a real database. | Apache License, Version 2.0 |
mongo-java-driver | MongoDB driver for Java. Used for all interactions with MongoDB from Java. | Apache License, Version 2.0 |
hystrix et al. | Hystrix core is a java framework to build a Distributed/Cloud-enabled Systems. It's "... is a latency and fault tolerance library designed to isolate points. .., stop cascading failure and enable resilience ...". | Apache License, Version 2.0 |
pyresttest | Python utility for testing and benchmarking RESTful services. | Apache License, Version 2.0 |