Coder Social home page Coder Social logo

sudarsan-sridharan / edison-microservice Goto Github PK

View Code? Open in Web Editor NEW

This project forked from otto-de/edison-microservice

0.0 1.0 0.0 2.36 MB

Collection of independent libraries on top of Spring Boot to provide a faster setup of jvm microservices

License: Apache License 2.0

Shell 0.21% HTML 4.07% Java 95.63% JavaScript 0.08%

edison-microservice's Introduction

edison-microservice

Collection of independent libraries on top of Spring Boot to provide a faster setup of jvm microservices.

"I never did anything by accident, nor did any of my inventions come by accident; they came by work." - Thomas Edison

Status

Next Selected Stories Active Stories

build codecov dependencies release license

Have a look at the release notes for details about updates and changes.

About

This project contains a number of independent libraries on top of Spring Boot to provide a faster setup of jvm microservices. The libraries are used in different projects at OTTO. It's purpose is to provide a common implementation for cross-cutting requirements like:

  • Health checks that are used to tell the load balancer or mesos platform whether or not a service is healthy.
  • A status page/document that is used to give information about the current state of the service. Status information also include details about sub-components, background jobs like imports, and so on.
  • A simple job handling library that is used to run asynchronous background jobs, which for example can be used to run data imports from other systems.
  • An optional MongoDB-based implementation of a JobRepository
  • Support for MongoDB-based repositories in case you do not like Spring Data
  • Reporting of metrics to Graphite
  • Support for Caffeine caches
  • Support for feature toggles based on Togglz

... plus all the features of Spring Boot.

Future Releases aka Roadmap

Semantic Versioning v2.0.0 is used to specify the version numbers.

This project maintains its roadmap with issues and milestones.

1.0.0: Edison Microservices for Spring Boot 1.4

1.1.0: Edison Microservices for Spring Boot 1.5

2.0.0: Edison Microservices for Spring Boot 2.0

Documentation

Edison Modules:

  • edison-core: Main library of Edison microservices.
  • edison-cache: Optional support for Caffeine caches in Edison.
  • edison-jobs: Optional module providing a simple job library.
  • edison-mongo: Auto-configuration for MongoDB repositories plus implementation of MongoJobRepository and Togglz StateRepository.
  • edison-dynamodb: Auto-configuration for DynamoDB repositories plus implementation of DynamoJobRepository and Togglz StateRepository.
  • edison-togglz: Optional support for feature toggles for Edison microservices based on Togglz.
  • edison-testsupport: Test support for feature toggles plus utilities.

Examples:

  • example-status: Service only relying on edison-core to show the usage of health and status features.
  • example-metrics: Service that is using edison-core metrics.
  • example-jobs: Edison service using edison-jobs to run background tasks.
  • example-togglz: Example using `edison-togglz´ to implement feature toggles.
  • example-togglz-mongo: Same edison-toggz, but with a MongoDB configuration to auto-configure persistence of feature toggles.

Setup

Make sure you have Java 1.8 and gradle 3.x installed on your computer.

Testing

Test and create coverage report

gradle check

Dependency Update

Determine possible dependency updates

gradle dependencyUpdates -Drevision=release

Publishing

Publish new releases

gradle uploadArchives

Examples

There are a few examples that may help you to start your first microservice based on Edison and Spring Boot. Because Spring Boot itself has some complexity, it is recommended to first read it's documentation before starting with Edison.

The examples can be started with gradle:

gradle examples:example-status:bootRun
gradle examples:example-metrics:bootRun
gradle examples:example-jobs:bootRun
gradle examples:example-togglz:bootRun
gradle examples:example-togglz-mongo:bootRun

Open in your browser http://localhost:8080/

Note: Every example is configured to use port 8080, so make sure to run only one example at a time or to reconfigure the ports.

Contributing

Have a look at our contribution guidelines.

edison-microservice's People

Contributors

1ulhc8o2vwm8pwgwtjkpirw9zlbkt-c5 avatar benestem avatar christianfinckler1212 avatar danielrolfes2307 avatar fabianhoffmann2363 avatar felixb avatar flosell avatar frankbregulla1111 avatar ftorkler avatar gsteinacker avatar mananbharara avatar marionoecker0301 avatar martinscheidweiler2708 avatar mazzeb avatar mediamarco avatar micharegel1111 avatar nikos avatar peterfouquet0001 avatar ralfwarfelmann0815 avatar redvox avatar simonmonecke avatar simonmonecke1708 avatar sroidl avatar stefan42 avatar stefanschmidt1701 avatar tomvollerthun1337 avatar

Watchers

 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.