-
Notifications
You must be signed in to change notification settings - Fork 23
Home
Project lightblue is designed to enable faster time to market on strategic business demands by increasing availability, resiliency, consistency, and performance of data SOA Services in a scalable, resilient and cloud capable fashion. It breaks away from traditional modelling approaches of knowing data structures at design time and provides a metadata driven framework with MongoDB support. Lightblue is based on analysis of existing development models and is driven by a need to reduce maintenance and feature requests from external customers. Some key features are versioned metadata, flexible plugin architecture, and the ability to aggregate data across various storage technologies (NoSQL, SQL, File, etc). Use of lightblue reduces complexity, maintenance, support, and infrastructure needs while enhancing flexibility and security in a cloud enabled architecture.
- Ensure changes to service capabilities do not impact existing customers.
- Enable deployment to cloud infrastructure.
- Provide robust security.
- Reduce maintenance costs.
To remove impacts to existing customers there are a few things that are done in lightblue:
- provide a robust and stable service API
- multiple active versions of metadata
- guarantee backwards compatibility of metadata changes
Lightblue is designed to be deployed anywhere.
- flexible component architecture provides ability to talk to different datastores (MongoDB, RDBMS)
- need to talk to something else, just write the controller implementation
- Hystrix to isolate external dependencies
- Servo for application monitoring (Graphite, CloudWatch, etc)
All access to REST and Web UI components are designed to work with the authentication and authorization of your choice. Lightblue does not dictate how you will secure your assests. Expect some examples on how to do authentication and authorization to come as we finalize development of the first technical deliverable.
Existing workflow to add a single field to an existing entity involves many things as illustrated here:
With lightblue everything that previously required code changes is now a change to metadata:
The license of lightblue is GPLv3. See COPYING 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 |
Gson | Convert Java to and from JSON. Used in simple cases where processing is 1:1 between Java and 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 |