Skip to main content

Mentor session booking

A founder books a session with a mentor. A session belongs to a match between that mentor and the founder's venture. If no match exists yet, booking creates one.

Mentor session booking. The founder's browser posts a booking with the mentor, venture, time and topic. The mentorship service resolves the mentor, finds or creates the match, refusing with 409 if a new match would take the mentor over their maximum number of mentees. It stores the session as scheduled and returns it. At the time of the session both sides call the join endpoint and receive a video room token. After the session the mentor logs notes, the service marks it completed, updates the mentor's impact score and, after the transaction commits, publishes a session completed event to Kafka.

Session states​

Mentor session status. A session starts as scheduled. It can be completed or cancelled. A completed session cannot be cancelled and a cancelled session cannot be completed; both return 409. Completing an already completed session updates the notes without repeating the side effects.

Details​

  • The mentor in the request can be named by Keycloak username (for example mentor-user-001) or by UUID. Unknown mentors return 404.
  • A session's video room is derived from its id, so both sides arrive in the same room without storing anything. The identity used in the room is the verified principal.
  • The completion event is sent only after the database transaction commits. Sending it inside the transaction once broke the commit, and a rolled-back completion no longer announces itself.
  • Re-logging a completed session updates the notes but does not repeat the impact score update or the event.

Sources: services/mentorship-service/src/main/java/com/rtih/startupos/mentorship/{service/SessionService,service/SessionConferenceService,resource/SessionResource}.java, services/mentorship-service/src/main/resources/application.yml (topic).