Events
Services publish domain events to Kafka (Apache Kafka 3.7, one broker) and other services react. The topics and their directions, read from each service's application.yml and channel annotations:
| Topic | Published by | Consumed by |
|---|---|---|
startupos.user.events | identity | No consumer found. |
startupos.founder.events | onboarding | program, analytics, notification |
startupos.program.events | program | onboarding, analytics, notification |
startupos.mentor.events | mentorship | analytics, notification |
startupos.lms.events | lms | analytics, notification |
startupos.ai.audit | ai-copilot | analytics |
Notes
- Analytics subscribes to five topics. Notification subscribes to four (not
startupos.ai.audit). - A mentoring session completion is sent to Kafka after the database transaction commits, so a rolled-back completion never announces itself. See the booking flow.
- Event classes live in
libs/common-models.
Sources: services/*/src/main/resources/application.yml (mp.messaging), grep over @Channel, @Incoming, @Outgoing in services/*/src/main/java, infra/k8s/kafka.yaml.