Replies: 6 comments 6 replies
-
|
It's has been suggestion at the RESO conference, we may want to make it What would the preference be for bulk classification? Boolean or numeric |
Beta Was this translation helpful? Give feedback.
-
|
As a consumer, I like this. Being able to get realtime updates as fast as possible but be able to control the rate of bulk updates would help us deliver to our customers. The definition of BulkYN assumes there are exactly two categories – bulk and not bulk. I haven’t thought this through deeply, but I wonder if there will be other categories in the future. (To be clear, I’m not advocating that we add filtering to entity events.) So I wonder if this should be some sort of “Priority” field that can be either “Realtime” or “Bulk” and leave ourselves open to a future third, fourth type. (Am I optimizing for a use case we don’t have yet? Or am I trying to make sure we don’t paint ourselves into a corner?) |
Beta Was this translation helpful? Give feedback.
-
|
Could it just be an additional event type of Bulk Update?
…On Wed, Oct 23, 2024, 09:07 Bryan Burgers ***@***.***> wrote:
As a consumer, I like this. Being able to get realtime updates as fast as
possible but be able to control the rate of bulk updates would help us
deliver to our customers.
The definition of BulkYN assumes there are exactly two categories – bulk
and not bulk.
I haven’t thought this through deeply, but I wonder if there will be other
categories in the future.
(To be clear, I’m *not* advocating that we add filtering to entity
events.)
So I wonder if this should be some sort of “Priority” field that can be
either “Realtime” or “Bulk” and leave ourselves open to a future third,
fourth type. (Am I optimizing for a use case we don’t have yet? Or am I
trying to make sure we don’t paint ourselves into a corner?)
—
Reply to this email directly, view it on GitHub
<#154 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAECWPQ7CHC6VVGN2D4POA3Z47CU5AVCNFSM6AAAAABQPEQAQWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCMBTGE2DQMI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***
.com>
|
Beta Was this translation helpful? Give feedback.
-
|
This seems like a leaky abstraction. Implementation details about the
internal system behavior are making their way into special flags the
interface with the goal of trying to model batch processes with event
streams. Seems like there are probably better ways to handle it.
And not all event streams are meant to be monolithic and re-entrant
replication logs.
Different use cases can still use the interface of a log but with the
events they're interested in, which is what filtering and event types are
supposed to accomplish without Boolean variables. A batch update seems like
more of an event type than its own independent variable. It's really a Bulk
Update.
Can discuss further in the workgroups.
The goal is to use a few fields as possible, which is consistent with
best practices for large event streams. I don't think any additional fields
should be added unless absolutely necessary
…On Wed, Oct 23, 2024, 22:49 Geoff Rispin ***@***.***> wrote:
We could just have the bulk/priority field not displayed by default unless
selected as part of the standard which would make the payload no bigger
than the current standard unless the bulk/priority field is requested. I
agree the priority/bulk field is most useful for filters on queries and
webhook subscriptions, not as data in the response payload. This behavioral
difference makes me want it as a separate field even more as the current
type field is needed with every entity event record but the bulk/priority
field is not. If we are concerned about payload size, the field visibility
approach is also smaller than adding enumerations with bulk prefixes as the
additional 4 characters for "bulk" prefix would be transmitted with each
record where no additional characters are needed in the visibility approach.
Doing it with a separate bulk field is also easier for clients as the only
have to consider the bulk field if they need their entity event processing
to be faster than their rate of consumption of the entity event resource.
For those that do not need near-time replication or have a high rate of
consumption, can setup their system and completely ignore the bulk/priority
field. If we use bulk enumerations for each operation in type, the client
now need to map the bulk enumeration values to base enumeration.
The more I think about it, the more I like @bryanburgers
<https://github.com/bryanburgers> suggestion to use a numeric so that
tiered prioritization could be trivially communicated by data consumers and
the clients has decide how granular to be through filter clauses. It's a
minimal impact to the logic and provides both data publishers and clients
potentially more flexibility if it is used especially if it is used and is
only more complex for those that use the functionality. All that changes
between the boolean and a number is the field naming and the filter
comparisons to true/false vs (>1 or =1).
Example:
Data provider could publish entity events with recent history events is a
separate priority from much older and higher volume tier :
- Priority 1 active, real time entity events
- Priority 2 is last 12/24/36 month non active record updates
- Priority 3 is greater than all older listings
Now consumers can define how they want to ingest
- Client 1: Consumer one cares mostly about real time display of data.
they have two replication filters running, one priority=1 for real time
events and one for priority>1 for all other events
- Client 2: doing weekly reports or analytics that are not time
sensitive. They have no special filter
- Client 3:needs all the data as fast as possible with more current
data being of higher value than others. The usage could have filters for
priority=x down to 10 and then a final filter for priority>10.
Data providers can prioritize in to as many segments as desired based on
patch size and impact. Clients can choose to use the tiering based on need
for real time data, record ingestion rates to be as or not granular they
want to be within the provided tiers of prioritized events.
The key to this is that when the priority filter is used the lowest client
priority filter should be a greater than last equals comparison to ensure
the data consumer has fetched all priority levels that might be used.
—
Reply to this email directly, view it on GitHub
<#154 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAECWPW6WESPSF2C5VBVZSLZ5CC5HAVCNFSM6AAAAABQPEQAQWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCMBTGY3DQMY>
.
You are receiving this because you commented.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
|
As a side note, @grispin, I don't have any doubts about the validity of the request and the use cases you've outlined. Mostly just looking for ways to achieve the goals in a clean way with what we currently have available, if possible, before adding extra stuff. Some potential options:
|
Beta Was this translation helpful? Give feedback.
-
|
So how do we want to proceed? @bryanburgers @darnjo
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Large historical data patches (data remapping, DD version compliance changes, etc ) can create a large backlog (millions of records) of entity events the data consumers need to parse in order to catch up their replication state.
The proposal would be to add a bulkYN boolean field to all for consumers to have parallel replication streams; one for bulk data changes ( off-market, historical data) and one for the active operations happening on the data provider. This allows the data consumers to keep getting timely updates for on market changes while batch process historical changes to minimize impact to their operations.
This field could also be used by the webhook subscription filter to all data consumers to have differ endpoints for bulk vs non bulk endpoint changes and handle their processing velocity has their business needs demand.
Beta Was this translation helpful? Give feedback.
All reactions