Speaker

Bobby Calderwood

Bobby Calderwood

Founder, Evident Systems

Highland, Utah, United States

Bobby is the founder of Evident Systems and the creator of the Evident Stack, which helps companies to design, implement, and operate event-based information systems at a fraction of the time and cost of legacy development methods.

Before Evident Systems, Bobby was a Distinguished Engineer on the Technology Fellows team at Capital One. Prior to Capital One, Bobby worked on the Product Team at Cognitect building, testing, and helping customers win with Clojure, ClojureScript, and Datomic.

Bobby's been writing web applications and distributed systems since 2007.

Area of Expertise

  • Information & Communications Technology
  • Business & Management
  • Finance & Banking

Topics

  • Event Streaming
  • Event Sourcing
  • CQRS & Event Sourcing
  • Event Driven Architecture
  • Event Modeling
  • Kafka
  • Kafka Connect
  • Kafka Streams
  • Apache Kafka

Model-driven and low-code development for event-driven systems

It's a dream as old as business computing: the ability to create a graphical model and then to deploy it as a working information system. Many attempts to realize this dream have come and gone with varying degrees of success, from visual programming languages like Visual Basic and Scratch, to business workflow systems like BPMN and its proprietary commercial variants, to engineering-focused systems like UML.

But let's face it: most low-code and model-based application development tools fall far short of the needs of modern software development teams. At best, they're useful for rapidly testing ideas and creating prototypes. At worst, they're used by "citizen coders" to cynically circumvent good engineering practices, with IT operations left holding the bag of operating, securing, and scaling black-box applications that cut against modern DevSecOps practices.

Event-driven application architecture, enabled by infrastructure like Kafka and its ecosystem, has the potential to dramatically advance toward the age-old, model-driven and low-code dream. But what would an event-centric and developer-friendly low-code look like?

This talk will outline strategies for low-code and model-driven development based on Event Modeling. We'll explore how event-driven application architecture provides a simple yet robust framework for generating DevSecOps-friendly code for the UI, for the web services layer, and for event-processing.

Building Information Systems using Event Modeling

Event Modeling is a fairly new information system modeling discipline created by Adam Dymitruk that is heavily influenced by CQRS and Event Sourcing. Its lineage follows from Event Storming, Design Thinking, and other modeling practices from the Agile and Domain-Driven Design communities. The methodology emphasizes simplicity (there are only four model ingredients) and inclusion of non-developer participants.

Like other modeling disciplines, Event Modeling is sufficiently general to enable collaborative learning and knowledge exchange among UI/UX designers, software engineers and architects, and business domain experts. But it's also sufficiently expressive and specific to be directly actionable by the implementors of the information system described by the model.

During this talk, we'll:

* Build an Event Model of a simple information system, including wire-framing the UI/UX experience
* Explore how to proceed from model to implementation using Kafka, its Streams and Connect APIs, and KSQL
* Jump-start the implementation by generating code directly from the Event Model
* Track and measure the work of implementation by generating tasks directly from the Event Model

Absolute Consistency: Utilizing Point-in-Time Queries in Event-Based Systems

The arrival of events on a stream is the foundation of causal reasoning in an event-based system. Each event creates a "tick" of the system's causal "clock", allowing us to reason about the state of the system as of any particular event.

But what about our Read Models (e.g. tables, materialized views, database sinks)? Many data stores support efficient versioning and point-in-time querying, including Git, S3, Datomic, XTDB, and many others. How can our system design and implementation benefit by pairing the notion of time implicit in event-based systems with a data store capable of versioning and point-in-time queries?

In this talk, we'll discuss how the oNote team implemented a point-in-time queryable Event Model repository using Kafka, Git, and CRDTs. We'll also discuss some other technologies that facilitate this pattern. Finally, we'll explore the benefits of pairing immutable event streams with databases that support versioning and point-in-time querying, including:

* Absolutely consistent reads for all system participants, even as writes continue to arrive
* Uninterrupted read-availability, even in the face of partial system failure
* Much better user experience in rapidly-changing or collaborative systems -- no more last-write-wins conflicts based on stale data!
* Efficient reconstructions of system state as of any particular event, for audit, analysis, and business error recovery

Bobby Calderwood

Founder, Evident Systems

Highland, Utah, United States

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top