Git Product home page Git Product logo

poc-eventsourcing's Introduction

poc-es

Eventsourcing service

  • Main language - Kotlin, SpringBoot
  • Testing - JUnit5, Mockk, Strikt(Assertions)
  • ORM - JPQL(Eclipselink)
  • Build - Gradle
  • EventStore - AxonServer

To build

Various gradle tasks are available in project for building & testing whole project

Development

Under development: features outlined below may not be final.

branch ci status coverage codacy code quality notes
develop CircleCI [codecov badge] Codacy Badge Work in progress
main CircleCI [codecov badge] [Codacy badge] Latest release

Git strategy

  • Currently, doing trunk based development on forks since team is small.
  • Will move to Git flow (feature branches) when needed.

However, every commit message must:

  • start with JIRA ticket no.
  • tell a concise & clear functional story
  • use imperative style e.g. Add tests for 'X' or Fix 'Y' or Create 'Z'

Deploy code + database for local development

  1. Install Docker for IntelliJ(IntelliJ 2020.2.4 provides stable support )

  2. Install Docker for desktop(Mac or Windows) & Connect it within IntelliJ

  3. Edit the docker-compose.yml configuration

    • add 'clean build' gradle tasks of project
    • โœ… --build, force build images

    Run <project>/docker-compose.yml by clicking on green gutter-icon on 'services' key in file.

  4. Open IntelliJ 'Services' view to find 2 containers - tomcat & axonserver running.Both containers will use same network(xxxx-be_default) as the main application & database.

  5. the docker-compose.yml runs tomcat in debug mode which allows hot reload

Coding Style

  • Keep line length at 120 chars. Hard wrap if exceeds.
  • Add KDoc to significant functions in Services etc. Install KDoc-generator plugin for that.
  • use explanatory variable names
  • Use wildcard imports when class count is high e.g > 10 .Same for static imports (when names count is high e.g. > 5 ). Check Preferences -> CodeStyle -> Kotlin

Import order in Kotlin classes

Define following sequence of imports in IntelliJ settings

// static all other,
java.*, 
javax.*,
kotlin.*,
org.*, 
com.*
 
// all other imports

Deployment

CircleCI config.yml in .circleci folder runs CI/CD pipe-line of following jobs

  • code-coverage,
  • build and register ECR image,
  • deploy image to ECS cluster

for dev,staging environments

Health check url

api health check endpoint is available at [host/app/rest/health] [host/app/rest/health] => returns ok

Axon framework

documentation

issues forum

poc-eventsourcing's People

Contributors

wildthing81 avatar

Watchers

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