Git Product home page Git Product logo

edison-microservice's Introduction

edison-microservice

Common basis for some of otto.de's micro-services using Spring Boot.

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

Thomas Edison

Status

Build Status Maven Central Dependency Status

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

About

This project contains a number of independent libraries that may be used to create microservices on top of Spring Boot. 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 may be used to give information about the current state of the service. Status information may 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 Guava caches
  • Logging of messages to Kafka queues
  • Support for feature toggles based on the Togglz library

... plus all the features of Spring Boot.

Documentation

Getting started

Make sure you have Java 1.8 and gradle 2.x and installed on your computer. To run all tests for all edison modules execute in the base directory where you have checked out this project the shell and give it a spin:

gradle clean check

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 clean example-jobs:bootRun
gradle clean example-metrics:bootRun
gradle clean example-status:bootRun
gradle clean example-layout:bootRun

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

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

So, you want to contribute to this project! That's awesome. However, before doing so, please read the following simple steps how to contribute.

Discuss the changes before doing them

There is a edison-microservice Google Group where you can get help or open a discussion about missing features or other issues.

You can also use the GitHub issue tracker, to open an issue, describing the contribution you would like to make, the bug you found or any other ideas you have. This will help us to get you started on the right foot.

It is recommended to wait for feedback before continuing to next steps. However, if the issue is clear (e.g. a typo) and the fix is simple, you can continue and fix it.

Fixing issues

Fork the project in your account and create a branch with your fix: some-great-feature or some-issue-fix.

Commit your changes in that branch, writing the code following the code style. Please do not forget to add some tests and documentation

Creating a pull request

Open a pull request, and reference the initial issue in the pull request message (e.g. fixes #). Write a good description and title, so everybody will know what is fixed/improved.

Wait for feedback

Before accepting your contributions, we will review them. You may get feedback about what should be fixed in your modified code. If so, just keep committing in your branch and the pull request will be updated automatically.

Everyone is happy!

Finally, your contributions will be merged, and we will publish a new release. Contributions are more than welcome!

edison-microservice's People

Contributors

gsteinacker avatar nikos avatar fabianhoffmann2363 avatar mediamarco avatar flosell avatar mananbharara avatar danielrolfes2307 avatar peterfouquet0001 avatar christianfinckler1212 avatar redvox avatar marionoecker0301 avatar stefanschmidt1701 avatar martinscheidweiler2708 avatar mazzeb avatar stefan42 avatar 1ulhc8o2vwm8pwgwtjkpirw9zlbkt-c5 avatar tomvollerthun1337 avatar

Watchers

James Cloos 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.