Code Monkey home page Code Monkey logo

modulith's People

Contributors

edreyer avatar erikdreyer-toast avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

modulith's Issues

how Spring event communication is handled? can't see use of ApplicationEventPublisher or EventListener

Hi Erik ,

You said in the description that:

Events generated by each workflow, are published using Spring's event system.

but in the source code I dont see in usage of :

org.springframework.context.ApplicationEventPublisher
or
org.springframework.context.event.EventListener

Can you please confirm if the current architecture uses an event driven communication btw modules and if soo how the event are habdled wich framework (spring event, Guava, eventbus, MBassador)

thanks

Where is MongoDB infrastructure?

Dear Edreyer,

Thank you for your project. It looks pretty good.

I could see that you chose to use MongoDB for production and h2 for testing.

I could not see any infrastructure (docker, docker-compose) to spin up your mongodb. Have you consider adding a directory called "docker" where you would have your docker-compose with your infrastructure (MongoDB)?

this why you could just call: docker compose -f docker/docker-compose.yml up -d

What do you think?

Regards,

Flavio Oliva

ACL system, CQRS Commands, Queries, Events Arch Unit

Hi Erik ,

First a big thank you for the great Repo ๐Ÿฅ‡

when you said :

TODO
ACL system
CQRS
Commands, Queries, Events
Arch Unit

is it only to add explanation to the readme.md or you mean that these architecture techniques are not yet implmented in the current source code of the sample application?

Can't see how CQRS is implemented in the current codebase

Hi Erik

Thank for for the answer :)

but I can't see how CQRS is implemented as an example for the booking module both writte and read operations go through the same persistence unit and end up in the same mongodb document.

in the booking module:

Both writte and read operations use AppointmentRepository
and
**Both writte and read operations end up using the same DB table ( appointments Document on mongodb) **

If you can please explain to me how CQRS is implemented ? thats will be appreciated

cheers

Experiment with bean mapping to cut down on boileplate

In this (and similar) architectures, there are layers boundaries where translations must occur between DTOs, Domain Objects, JPA entities, etc.

The project is currently using handwritten extension functions. This can be a bit tedious as it's just copying fields. See if a bean mapper could reduce some of this.

One kotlin project to try: https://shapeshift.krud.dev/

DTO naming convention

Dear Edreyer,

looking at your swagger URL:

http://localhost:8080/webjars/swagger-ui/index.html

I could see that your DTOs have different naming conventions. Sometimes you use Input, Output, other moments you use In, Out. And in some occasions, you just don't even use anything to indicate if the DTO is for in or out purpose.

I would suggest, that you take to one convention and stick to that. I understand that sometimes a DTO can be used for in and out purposes but it might be interesting to have separate classes just for the sake of clarity.

This is just my 2p.

Thanks once again for your repostory.

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.