Simple Sourcing is designed to take advantage of the horizontally scalable deployment model of Kafka Streams. A typical Simple Sourcing implementation will consist of multiple EventSourcedApp
stream processing instances, each of them running in their own JVM process.
A client application such as a web service communicates with these Simple Sourcing instances via the CommandApi
client API. The EventSourcedClient
DSL provides a simple mechanism to create instances of the CommandApi
. Communication between the client and the Simple Sourcing instances takes place via Kafka. Any Java application can be a simple sourcing client, it just needs to be able to access the same Kafka cluster.
This deployment model allows independent scaling of the web and the stream processing layers.