Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.C



Alternative Design - Adam Bellemare July 2018

Features:

  • Performs updates from both sides of the join.
  • Uses user-specified serdes to perform the rangeScans.
  • Resolves out-of-order processing due to switching the foreignKey on the event side.

Current Limitations:

  • Requires two full materialized State Stores at a minimum
    • One for the rangeScannable events from the left table.
    • One for the highwater mark for resolving out-of-order processing of events.

Motivation

Same as above.

Public Interfaces

Code Block
<V0, KL, VL, KR, VR> KTable<KL, V0> foreignKeyJoin(KTable<KR, VR> other,
                                                    ValueMapper<VL, KR> foreignKeyExtractor,
                                                    final ValueJoiner<VR, VL, V0> joiner,
                                                    final Materialized<KL, V0, KeyValueStore<Bytes, byte[]>> materialized,
                                                    Serde<KL> thisKeySerde,
                                                    Serde<KR> otherKeySerde,
                                                    Serde<VR> otherValueSerde,
                                                    Serde<V0> joinedValueSerde);



Overview

Gliffy Diagram
nameBellemareOverview213
pagePin2