Open
Description
Description:
The Polling Publisher design pattern is used within microservices architecture to allow services to periodically check for updates or changes and then publish the results to subscribers. This pattern is particularly useful for ensuring that microservices are loosely coupled and can independently manage their data refresh cycles without requiring direct communication or immediate event-based updates.
Main Elements of the Pattern:
- Polling Service: A microservice that periodically checks for updates or changes in a specific data source.
- Publisher: The component within the polling service that publishes the updated data to interested subscribers.
- Subscriber: Services or components that subscribe to the updates published by the polling service.
- Scheduler: A mechanism to trigger the polling service at regular intervals.
- Data Source: The source from which the polling service fetches updates.
- Communication Protocol: Defines how the polling service communicates with subscribers, typically using RESTful APIs, message brokers, or other asynchronous messaging systems.
References:
Acceptance Criteria:
- Implement a basic polling service that checks for updates in a predefined data source at regular intervals.
- Ensure the polling service can publish updates to subscribers using a RESTful API or message broker.
- Provide a sample subscriber that demonstrates how to consume updates from the polling service.
Metadata
Metadata
Assignees
Projects
Status
Todo
Activity
YashKesh commentedon Oct 16, 2023
@iluwatar what feature you wanted to add i can do
CoderSleek commentedon Oct 2, 2024
Hey @iluwatar, I can pick this task up.
stale commentedon Dec 13, 2024
This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.
CoderSleek commentedon Dec 13, 2024
still working on it, albeit a bit slow :)
The stale label can be removed
github-actions commentedon Feb 12, 2025
This issue is stale because it has been open 60 days with no activity.
8 remaining items
quantdevv commentedon Feb 24, 2025
Thanks @iluwatar @CoderSleek , i'll have a look on this.
quantdevv commentedon Mar 1, 2025
Hey @iluwatar , i want to discuss something on this... is there any dedicated server to discuss any kind issue..?
iluwatar commentedon Mar 2, 2025
Try Gitter channel here: https://app.gitter.im/#/room/#iluwatar_java-design-patterns:gitter.im
quantdevv commentedon Mar 4, 2025
Hi @iluwatar , here i'm planning to implement this micro-service pattern in below architecture .. would you like to review it once..?
Here will create two services polling-service & subscriber-service. as i made two to keep it true microservice architecture.
polling-service -> which will handles the periodically check for update or change in datasource & schedule , polling controller alongwith rest-controller so can be tested manually... or can be used either way.
subscriber service -> this contains the kafka MQ , which consume the published message by polling controller & schedular ...
the dummy structure will be like this..
Data-source ------> polling service (polling schedular, controller (publish)) ----> MQ (Kafka) -----> notification
let me know if you have any suggestion on this.. or else i'll proceed with it.
iluwatar commentedon Mar 5, 2025
Yes, sounds good @quantdevv 👍
github-actions commentedon May 5, 2025
This issue is stale because it has been open 60 days with no activity.
quantdevv commentedon Jun 5, 2025
Hi @iluwatar , please have a look to PR.