Versions Compared

Key

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

...

The test framework is designed in a way which asks users to do none or minimal Samza configs, in future we intend to use StreamDescriptors in the test framework to do Samza configs. This change would cause a small change in the way user passes their custom configs (if any) to the test framework 

Test Matrix (Plan)


Samza APIConcurrencyPartitionsContainerExpected Result
StreamTask
task.max.concurrency = 1
job.container.thread.pool.size = n
1 <= p <= n1 / nin order processing
   
task.max.concurrency > 1
job.container.thread.pool.size = n
1 <= p <= n1 / nout of order processing
   
AsyncStreamTask
task.max.concurrency = 11 <= p <= n1 / nin order processing
task.max.concurrency = n1 <= p <= n1 / nout of order processing
Windowable TaskN/A1 <= p <= n1 / nexpecting processing n messages for messages window of time t
Initiable TaskN/A1 <= p <= n1 / nstateful testing (assertions on kv store)
Closable TaskN/A1 <= p <= n1 / n?

Map / Flatmap / Filter /

Partition By / Merge /

SendTo / Sink / Join /

Window

 

task.max.concurrency = 1

job.container.thread.pool.size = n

1 <= p < n 1 / nin order processing

task.max.concurrency > 1

job.container.thread.pool.size = n

out of order processing
Metadata StreamsTests
Changelog StreamAssertions on Changelog stream in Stateful tests
Checkpoint StreamAsserts on Checkpoint Stream (Kafka or InMemory)
Coordinator StreamAsserts on Coordinator stream (Kafka or InMemory)



Public Interfaces

Two Apis for writing tests are: Low Level Test Api (TestTask) & High Level Api (TestApplication)

...