Conversation
- Decouple microservices from direct Kafka dependencies to ensure vendor neutrality. - Replace `spring-kafka` with `spring-cloud-starter-stream-kafka` in `profile-service`, `consent-service`, `segment-service`, and `preference-service`. - Refactor event publishers to use `StreamBridge` instead of `KafkaTemplate`. - Migrate message consumers to the functional `java.util.function.Consumer` model. - Centralize stream binding and binder configurations in `config-service`. - Clean up unused imports and standardize Avro message handling across services.
- Add `docs/API_REFERENCE.md` containing detailed endpoint documentation, payloads, and curl examples for all microservices. - Update [README.md]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a major improvement to both platform architecture and developer experience.
Messaging layer migration
The messaging infrastructure has been migrated from direct Kafka usage to Spring Cloud Stream, allowing microservices to be decoupled from vendor-specific messaging implementations.
This improves portability, maintainability, and testability while aligning the system with modern Spring best practices.
Key changes:
spring-kafkawithspring-cloud-starter-stream-kafkaStreamBridgeConsumer<T>programming modelconfig-serviceAPI documentation
docs/API_REFERENCE.mdwith detailed endpoint documentation for all microservicescurlexamplesREADME.mdto reference the new API documentationThis PR lays the groundwork for improved scalability, clearer contracts, and easier onboarding.
Fixes # (issue)
Type of change
How Has This Been Tested?
The changes were validated through local testing and service-level verification:
Message production and consumption tested across services using Kafka binder
Verified functional consumers and producers with real event flows
Manual API validation using provided
curlexamplesApplication startup and configuration loading tested across environments
Unit Tests
Integration Tests
Checklist: