Having looked at a range of platforms for distributing data across networks Thingmonk invited Dominic Fox and Tareq Abredrabbo of Open Credo to talk about what we can do to make sense of the data we collect. What if the pitfalls identified in Peter Deutsch’s “eight fallacies of distributed computing” were not inconveniences but opportunities? They present their view of the emerging patterns within distributed systems architecture and argue for a modern semantics of distributed systems based on sympathy with the network. In this approach, event sourcing and stream processing provide the processing model, while microservices and bounded contexts provide the domain model of Concursus. An open source framework for bringing event sourcing patterns to distributed applications, based on Open Credo’s practical experience of implementing IoT systems in production.
Tareq kicked off by giving an overview of what event sourcing represents in terms of data structuring to create contextual histories, or query-optimised views of part of a system. Explaining that the importance of data is not in its actual presence but in how it is presented. He then went on to talk about the problems that Concursus addresses. Helping to process events in a scalable and reliable way that business logic can be built around. Inspired by stream processing frameworks such as Apache Storm and Spark, the Axon CQRS framework and domain driven design Open Credo are developing a “Write First, Reason later” approach so that the history of an entity or aggregate remains independent rather than being tied to a relational model with global constraints.
As Tareq handed over to Dominic the talk became quite technical as he gave some practical examples of how this Jave 8 framework can be integrated to provide an intuitive API to systems composed of event processing middleware. Using Cassandra as an event store, Kafka or RabbitMQ as message brokers and Hazelcast for transient state to structure the event history of a thing independently of the sequence these consumer events are reported and processed in.