Skip to content

Should the controller expect Domain Errors from the command bus? #116

Open

Description

@DanielRamosAcosta

You have this at the CoursePutController.ts#L20:

    try {
      await this.commandBus.dispatch(createCourseCommand);
    } catch (error) {
      if (error instanceof CourseAlreadyExists) {
        res.status(httpStatus.BAD_REQUEST).send(error.message);
      } else {
        res.status(httpStatus.INTERNAL_SERVER_ERROR).json(error);
      }
    }

Right now this works because we are using an InMemoryCommandBus implementation. But, if we change the CommandBus implementation to one where we cannot expect the execution of the code (for example if we store this command in Kafka for later consumption), the implementation of this controller wouldn't work at all (because the use case will never get executed in this request, and it will never throw).

Is this true? Thanks!

Activity

  1. fraylopez commented on Jan 31, 2022

    @fraylopez

    To be precise, this implementation will work if you use Kafka but will never trigger the bad request catch. If Kafka itself is unavailable it will respond with internal server error though.

  2. rjurado01 commented on May 6, 2023

    @rjurado01

    I also would like to know how errors in a boundex context are sent to other when you send command. In the course "DDD en TypeScript: Comunicación entre servicios y aplicaciones" this is not explained 😞

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions