pub fn create_raw_source<'g, G: Scope<Timestamp = ()>, C>(
    scope: &mut Child<'g, G, Timestamp>,
    committed_upper: &Stream<Child<'g, G, Timestamp>, ()>,
    config: RawSourceCreationConfig,
    source_connection: C,
    start_signal: impl Future<Output = ()> + 'static
) -> (Vec<(Collection<Child<'g, G, Timestamp>, SourceOutput<C::Time>, Diff>, Collection<Child<'g, G, Timestamp>, SourceError, Diff>)>, Stream<G, HealthStatusMessage>, Vec<PressOnDropButton>)
where C: SourceConnection + SourceRender + Clone + 'static,
Expand description

Creates a source dataflow operator graph from a source connection. The type of SourceConnection determines the type of connection that should be created.

This is also the place where reclocking (https://github.com/MaterializeInc/materialize/blob/main/doc/developer/design/20210714_reclocking.md) happens.

See the source module docs for more details about how raw sources are used.

The resume_stream parameter will contain frontier updates whenever times are durably recorded which allows the ingestion to release upstream resources.