Subscription / Events + Upgrades | clarification

For requests or help with our API
Post Reply
rinse-dental
Posts: 122
Joined: Wed Apr 06, 2022 12:04 pm

Subscription / Events + Upgrades | clarification

Post by rinse-dental » Thu Jun 26, 2025 10:48 am

Hello - We use most of the Open Dental database events and noticed that after an upgrade, events will fire for every row in a given table (e.g. Appointment). Would you mind confirming/clarifying the following observations?
  • All Subscriptions fire following an upgrade. (Or will it depend on the version and which tables were impacted?)
  • Events contain a max of 1000 rows/objects
  • Events will retry indefinitely if either A) no response is received (within n milliseconds?) or B) an error response is received.
  • Events fire in sequence and the sequence will not continue until the preceding event is successful.
  • Event headers do not include an ID or retry count/flag.
Thanks for the help! We just want to be sure we're processing events as quickly and efficiently as possible. :D

P.S. A note for those who come across this thread dealing with issues. We noticed several Open Dental services (namely the API service) would repeatedly die after an upgrade and we believe it was a result of how we were managing Subscriptions/Events and the load it put on our server. Improving our Events endpoint along with an upgrade/optimization of MariaDB (thank you OD support) helped a lot!

JTS
Posts: 50
Joined: Thu Aug 18, 2022 12:56 pm

Re: Subscription / Events + Upgrades | clarification

Post by JTS » Thu Jun 26, 2025 1:01 pm

Hi rinse-dental, let me elaborate on a few points.
  • A subscription to a DB event will fire if your current time is greater than the subscription's DateTimeStart column. This column is updated whenever the subscription is fired to be the next time it should be polled. If OpenDental is not running (such as if it's off for the weekend, or has an update in progress), then the next poll will include all changes since the last successful poll up to the last 3 days.
  • Correct, 1000 rows is the maximum. If an event were to have more than 1000 rows, then the additional rows that were over the limit will be sent the next time that the subscription would be polled. For example, if an event would send 2500 rows, then it will split into three events; Two chunks of 1000 followed by the last chunk of 500.
  • Correct, the events will keep trying if the request to the webhook site fails for any reason.
  • If a previous event is unsuccessful, any subsequent events will still attempt to fire as normal.
  • Correct, there are no ID or Retry flags.
See https://www.opendental.com/site/apiguideevents.html for extra notes and troubleshooting information. Thank you for reaching out!

rinse-dental
Posts: 122
Joined: Wed Apr 06, 2022 12:04 pm

Re: Subscription / Events + Upgrades | clarification

Post by rinse-dental » Thu Jun 26, 2025 3:18 pm

Thank you! One clarifying point/question. What causes a DB Event to fire following an upgrade? Will this depend on the version or is there a pattern to which events fire and for which rows? We had ~1500 Appointment Events fire for ~900 patients last night after an upgrade, this is a subset of both patients and visits.

Post Reply