[DRIVERS-1915] Change streams support for user-facing PIT pre- and post-images Created: 08/Sep/21  Updated: 14/Sep/22  Resolved: 14/Sep/22

Status: Closed
Project: Drivers
Component/s: Change Streams
Fix Version/s: None

Type: Spec Change Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Jeremy Mikola
Resolution: Done Votes: 0
Labels: size-medium, spec-change
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by MONGOSH-1173 Support user-facing PIT pre- and post... Closed
Gantt Dependency
has to be done after DRIVERS-2231 ChangeStream Spec: fullDocument field... Closed
Issue split
split to JAVA-4468 Change streams support for user-facin... Closed
split to PHPLIB-814 Change stream support for point-in-ti... Closed
split to PYTHON-3093 Change streams support for user-facin... Closed
split to RUST-1166 Change streams support for user-facin... Closed
split to CDRIVER-4277 Change streams support for user-facin... Closed
split to CSHARP-4034 Change streams support for user-facin... Closed
split to CXX-2438 Change streams support for user-facin... Closed
split to GODRIVER-2294 Change streams support for user-facin... Closed
split to MOTOR-878 Change streams support for user-facin... Closed
split to NODE-3938 Change streams support for user-facin... Closed
split to RUBY-2891 Change streams support for user-facin... Closed
Related
related to DRIVERS-2294 Add createCollection and collMod spec... Closed
Driver Changes: Needed
Server Compat: 6.0
Quarter: FY23Q2
Upstream Changes Summary:

A summary of downstream visible behavioral changes can be found at https://docs.google.com/document/d/1OCCcnUvjcT5lvh8A21qBdpz9suad6qsNjkTUanWGvyY/edit#bookmark=id.2mzcqwg403ed.

Downstream Changes Summary:

Change stream watch helpers now accept "whenAvailable" and "required" for the fullDocument option. Additionally, a new fullDocumentBeforeChange option is introduced, which accepts "whenAvailable" and "required". Change events may now include a fullDocumentBeforeChange response field.

The create and collMod commands now support a changeStreamPreAndPostImages option that accepts: {enabled: <boolean>}. The listCollections command will also report changeStreamPreAndPostImages (if set) when returning full collection info.

Drivers should sync unified change stream tests with 8978899.

Note: testing may require starting mongod with --setParameter featureFlagChangeStreamPreAndPostImages=true if the "latest" server build does not include SERVER-52282.

Engineering Lead: Jeremy Mikola Jeremy Mikola
Product Manager: Rachelle Palmer Rachelle Palmer
Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4277 Done 1.22.0, 1.22.0-beta0
CXX-2438 Fixed 3.7.0
CSHARP-4034 Done 2.16.0
GODRIVER-2294 Fixed 1.10.0, 1.10.0-beta1
JAVA-4468 Fixed 4.7.0
NODE-3938 Done 4.7.0
MOTOR-878 Fixed 3.1
PYTHON-3093 Fixed 4.2
PHPLIB-814 Fixed 1.13.0-beta1, 1.13.0
RUBY-2891 Fixed 2.18.0
RUST-1166 Fixed 2.3.0
SWIFT-1472 Won't Do

 Description   
Downstream Change Summary

https://docs.google.com/document/d/1VD0BL60sK233Yk2WLgb9MFoK5A0FrEIrr7iumMAzEOU/edit.

  • Add new permitted values to option fullDocument: "whenAvailable" and "required"
  • Expose previously private option fullDocumentBeforeChange, with permitted values: "whenAvailable", "required" and "off"
  • The structure of change events will change, adding the "fullDocumentBeforeChange" field
  • The create and collmod commands get a new option - "changeStreamPreAndPostImages".

Description of Linked Ticket

Epic Summary

Summary

In the change streams users can get before and after images of the document at the time of the change event

Motivation

This has been a user request and will allow us to offer change streams for more use cases while increasing client side debugability.

Cast of Characters

  • Product Owner: Katya Kamenieva
  • Project Lead: TBD
  • Program Manager: Ana Meza
  • Drivers Contact: TBD

Documentation

Scope Document
Technical Design Document
Product Description



 Comments   
Comment by Githook User [ 13/Apr/22 ]

Author:

{'name': 'Jeremy Mikola', 'email': 'jmikola@gmail.com', 'username': 'jmikola'}

Message: DRIVERS-1915: Change stream support for point-in-time pre and post-images (#1176)

  • DRIVERS-1915: Change stream support for point-in-time pre and post-images
  • Note "default" value for fullDocument

Per DRIVERS-2231, drivers no longer send this value, but it is technically accepted (like "off" for fullDocumentBeforeChange).

Comment by Jeremy Mikola [ 08/Apr/22 ]

https://github.com/mongodb/specifications/pull/1176

Comment by PM Bot [ 09/Feb/22 ]

If you are not logged in, you can view the tickets in this epic by following this link.

Generated at Thu Feb 08 08:24:16 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.