...
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 API | Concurrency | Partitions | Container | Expected Result | |
---|---|---|---|---|---|
StreamTask | task.max.concurrency = 1 job.container.thread.pool.size = n | 1 <= p <= n | 1 / n | in order processing | |
task.max.concurrency > 1 job.container.thread.pool.size = n | 1 <= p <= n | 1 / n | out of order processing | ||
AsyncStreamTask | task.max.concurrency = 1 | 1 <= p <= n | 1 / n | in order processing | |
task.max.concurrency = n | 1 <= p <= n | 1 / n | out of order processing | ||
Windowable Task | N/A | 1 <= p <= n | 1 / n | expecting processing n messages for messages window of time t | |
Initiable Task | N/A | 1 <= p <= n | 1 / n | stateful testing (assertions on kv store) | |
Closable Task | N/A | 1 <= p <= n | 1 / 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 / n | in order processing | |
task.max.concurrency > 1 job.container.thread.pool.size = n | out of order processing |
Metadata Streams | Tests | |
---|---|---|
Changelog Stream | Assertions on Changelog stream in Stateful tests | |
Checkpoint Stream | Asserts on Checkpoint Stream (Kafka or InMemory) | |
Coordinator Stream | Asserts on Coordinator stream (Kafka or InMemory) |
Public Interfaces
Two Apis for writing tests are: Low Level Test Api (TestTask) & High Level Api (TestApplication)
...