/dvalin

Taimos microservices framework

Primary LanguageJavaApache License 2.0Apache-2.0

Build Status sonarcloud.io Maven Central

dvalin - Taimos Microservice Framework

Dvalin is a Java micro service framework based on several open-source frameworks to combine the best tools into one quick start suite for fast, reliable and scaling micro services. The core technology is the Spring framework and dvalin uses our Daemon Framework as the lifecycle management for the service process.

To use dvalin in your project add the maven dependencies as shown below. It is recommended to set the dvalin version as property to make sure all modules you use have the same version.

<dependency>
    <groupId>de.taimos</groupId>
    <artifactId>dvalin-<MODULENAME></artifactId>
    <version>${dvalin.version}</version>
</dependency>

Then add dvalin as a BOM to the maven dependency management to ensure compatibly versions of used third-party libraries.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>de.taimos</groupId>
            <artifactId>dvalin-parent</artifactId>
            <version>${dvalin.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Parts of dvalin

Dvalin provides several independent but combineable libraries serving different purposes around the runtime and interaction of micro services. By adding a library as a Maven dependency, it gets activated automatically and all the needed Spring components are started.

These libraries are:

  • daemon - the core library for lifecycle and basic Spring enhancements
  • jaxrs - implement JAX-RS based REST services using the Apache CXF framework
  • jaxrs-jwtauth - JSON Web Token support for the jaxrs module
  • jpa - connect to SQL databases using the popular Hibernate framework
  • mongodb - connect to MongoDB document store
  • dynamodb - connect to AWS DynamoDB data storage
  • cloud - basic tools to communicate with Cloud providers
  • cluster - basic tools to form a cluster
  • template - templating functionality
  • notification - notification service to send e-mails and use template engines
  • monitoring - monitoring service to report statistics of your service
  • interconnect - communication framework to connect micro services with each other
  • orchestration - orchestration tools like service discovery and global configuration
  • test - utilities for writing tests
  • i18n - internationalization and localization support

Contributing

How to contribute to dvalin

Did you find a bug?

  • Ensure the bug was not already reported by searching on GitHub under Issues.

  • If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.

Did you write a patch that fixes a bug?

  • Open a new GitHub pull request with the patch.

  • Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.

Did you fix whitespace, format code, or make a purely cosmetic patch?

Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability will normally not be accepted.

Do you intend to add a new feature or change an existing one?

  • Suggest your change under Issues.

  • Do not open a pull request on GitHub until you have collected positive feedback about the change.

Do you want to contribute to the dvalin documentation?

  • Just file a PR with your recommended changes