SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Copyright 2021 Evident Systems LLC
Bobby Calderwood — September 15, 2021
Model-driven and low-code development


for event-based systems
The goal and the problem
• My name is Bobby, and my team makes https://oNote.com


• Our goal is to help software teams design, implement, and operate event-driven
systems


• Design with your team on our collaborative Event Modeling canvas


• Operate via platform integrations and streaming data visualizations


• Implement is a tricky one…
A brief (and incomplete) review


of model-driven and low-code approaches
Visual programming languages
• Notably Visual Basic, Scratch, Xojo, Xcode IDE and languages


• Not much to say here other than, “cool!”


• Often focused on UI and/or low-level program
fl
ow


• Designed for single-process, non-situated programs with transient state


• Still in common use, lots to learn from these tools
System modeling languages
• Notably UML


• In theory: comprehensive round-trip engineering, integrated documentation, shared model that
improves system comprehension among stakeholders


• In practice:


• Very little business stakeholder involvement/comprehension


• Mostly about system-level concerns (nerd stuff), not so much business and user concerns


• Lots of static nouns and OOP stuff, not great at describing state change over time


• Some helpful stuff: sequence diagrams, state machine diagrams
Business workflow and rules systems
• Notably BPMN, BPEL, jBPM, YAWL, Drools, RETE/Clara etc.


• Primarily about composing business logic rather than recording the business narrative of state
change over time


• Business events are transient and merely transition the FSM among states


• de facto: poorly named states that are more like events (“Approved by Management”)


• Business process diagramming is complex, and often devs confound business-process scale
constructs with programming-language constructs


• Initially intended for business users, but in reality end up being programmed by developers (tying
devs hands)
— Martin Fowler
Often the central pitch for a rules engine is that it
will allow the business people to specify the rules
themselves, so they can build the rules without
involving programmers. As so often, this can
sound plausible but rarely works out in practice.
Full stack low-code/no-code
• Lots of commercial offerings here, many as outgrowths of Business Work
fl
ow systems


• Designed to empower a legion of non-developer citizen coders, implicitly to work
around slow or unresponsive IT departments


• Often end up creating systems that don’t
fi
t in well with DevSecOps practice/ethos


• Black box ops, analytics, and security increases reliance on vendor


• Often very in
fl
exible and inextensible


• Easy to get going, but hit a wall if you want to go outside of well-trodden path
Open and standard interface definition languages
• Notably WSDL, OpenAPI/Swagger, GraphQL, gRPC, AsyncAPI


• Declarative and data-oriented rather than visual


• De
fi
ne (usually transient) communication protocols


• Not much structure/opinion around state over time via business events


• Great for de
fi
ning pieces of technical infrastructure and automating boring, repetitive
tasks
UI wire-framing tools
• Notably Figma, Adobe XD, Sketch.app, Balsamiq, etc.


• Similar to older visual programming environments like Visual Basic, Xcode, etc. but
almost exclusively focused on UI/UX design


• Some limited code generation, especially for UI-components-as-functions ecosystems
like React, Elm, other FRP-ish


• Emerging class of schema-driven form UI tooling
What has changed to justify a new approach to
model-driven and low-code development?
The need to understand the customer journey
Web
Call Center
Location
Mobile
Social Media
Email
The need to understand the customer journey
Web
Call Center
Location
Mobile
Social Media
Email
Business Event Log
The need to understand the customer journey
Web
Call Center
Location
Mobile
Social Media
Email
Business Event Log
The need for real-time
• Customer noti
fi
cation


• Decision making


• Analytics and machine learning


• Systems and data integration
Other factors
• Polyglot persistence


• Resurgence of functional programming ideas


• Better
fi
t for distributed computing


• Heavy in
fl
uence on UI development


• Components as functions that specify their data requirements


• Functional reactive state-management patterns, driven by business events


• Useful ideas emerging from Domain-Driven Design, and related communities
In short:


Business event-based application design
Requirements for event-based model-driven/low-code development
• A model for describing how state changes over time


• An extensible schema language for describing data: state, transition, transfer/
protocol


• Suitable output targets


• Intermediate representations


• Runtime languages, libraries, frameworks
Event Modeling describes state changes over time
Event Modeling describes state changes over time
• Focus on state change over time rather than business logic or system concerns


• Explicit patterns for integrating with external systems not under our control


• User experience design is
fi
rst-class


• Semantic data transfer objects (DTOs)


• Business logic
fi
ts into:


• Limited places


• Speci
fi
c types
Schema languages describe immutable data values
• Neutral: can target many output languages and formats


• Powerful and Flexible: can describe a wide variety of data structures


• Serializable and transmittable: can be saved and sent as part of an Event Model


• Extensible: can be extended to
fi
t new use-cases and output targets
What makes a suitable output target?
• DevSecOps friendliness!


• Git/SCM-amenable


• Easily integrated with CI/CD pipelines


• Change-log auditable


• No black-boxes!


• Intermediate representations vs. runtime code


• Programming-language neutral and/or broad coverage and support
Full-stack output targets
UI Components
Figma, etc. HTML/React output


Declarative, schema-based forms
Web Services


Interface De
fi
nition
gRPC via Protobufs/Avro


GraphQL


OpenAPI/Swagger
Event Processing
KSQL & ksqlDB


AsyncAPI


Event schemas as Avro/Protobufs/json-schema
It all comes together:


oNote generates Avro Protocol and


Event Schemas
Conclusion
• Model-driven and Low-code development are worthwhile pursuits, and need a refresh for
modern constraints and practices


• Don’t pursue low-code development to replace dev teams with citizen coders!


• Instead:


• Accelerate development with robust models and generation of real code and open-standard
intermediate representations


• Facilitate feedback from ops/production (coming to oNote soon!)


• Facilitate communication and learning along value chain via shared goals, incentives, and
models
Thank you!

Mais conteúdo relacionado

Mais procurados

Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...
Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...
Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...
HostedbyConfluent
 
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and ImplyAchieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
confluent
 

Mais procurados (20)

Mesh-ing around with Streams across the Enterprise | Phil Scanlon, Solace
Mesh-ing around with Streams across the Enterprise | Phil Scanlon, SolaceMesh-ing around with Streams across the Enterprise | Phil Scanlon, Solace
Mesh-ing around with Streams across the Enterprise | Phil Scanlon, Solace
 
Transform Your Mainframe and IBM i Data for the Cloud with Precisely and Apac...
Transform Your Mainframe and IBM i Data for the Cloud with Precisely and Apac...Transform Your Mainframe and IBM i Data for the Cloud with Precisely and Apac...
Transform Your Mainframe and IBM i Data for the Cloud with Precisely and Apac...
 
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, GoogleHybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
 
Transform Your Mainframe Data for the Cloud with Precisely and Apache Kafka
Transform Your Mainframe Data for the Cloud with Precisely and Apache KafkaTransform Your Mainframe Data for the Cloud with Precisely and Apache Kafka
Transform Your Mainframe Data for the Cloud with Precisely and Apache Kafka
 
EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...
EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...
EDA Governance Model: a multicloud approach based on GitOps | Alejandro Alija...
 
Why Kafka Works the Way It Does (And Not Some Other Way) | Tim Berglund, Conf...
Why Kafka Works the Way It Does (And Not Some Other Way) | Tim Berglund, Conf...Why Kafka Works the Way It Does (And Not Some Other Way) | Tim Berglund, Conf...
Why Kafka Works the Way It Does (And Not Some Other Way) | Tim Berglund, Conf...
 
Digital transformation: Highly resilient streaming architecture and strategie...
Digital transformation: Highly resilient streaming architecture and strategie...Digital transformation: Highly resilient streaming architecture and strategie...
Digital transformation: Highly resilient streaming architecture and strategie...
 
What does an event mean? Manage the meaning of your data! | Andreas Wombacher...
What does an event mean? Manage the meaning of your data! | Andreas Wombacher...What does an event mean? Manage the meaning of your data! | Andreas Wombacher...
What does an event mean? Manage the meaning of your data! | Andreas Wombacher...
 
Digital Transformation: Highly Resilient Streaming Architecture and Strategies
Digital Transformation: Highly Resilient Streaming Architecture and StrategiesDigital Transformation: Highly Resilient Streaming Architecture and Strategies
Digital Transformation: Highly Resilient Streaming Architecture and Strategies
 
Migrating from One Cloud Provider to Another (Without Losing Your Data or You...
Migrating from One Cloud Provider to Another (Without Losing Your Data or You...Migrating from One Cloud Provider to Another (Without Losing Your Data or You...
Migrating from One Cloud Provider to Another (Without Losing Your Data or You...
 
Comparing three data ingestion approaches where Apache Kafka integrates with ...
Comparing three data ingestion approaches where Apache Kafka integrates with ...Comparing three data ingestion approaches where Apache Kafka integrates with ...
Comparing three data ingestion approaches where Apache Kafka integrates with ...
 
Druid + Kafka: transform your data-in-motion to analytics-in-motion | Gian Me...
Druid + Kafka: transform your data-in-motion to analytics-in-motion | Gian Me...Druid + Kafka: transform your data-in-motion to analytics-in-motion | Gian Me...
Druid + Kafka: transform your data-in-motion to analytics-in-motion | Gian Me...
 
Kafka & InfluxDB: BFFs for Enterprise Data Applications | Russ Savage, Influx...
Kafka & InfluxDB: BFFs for Enterprise Data Applications | Russ Savage, Influx...Kafka & InfluxDB: BFFs for Enterprise Data Applications | Russ Savage, Influx...
Kafka & InfluxDB: BFFs for Enterprise Data Applications | Russ Savage, Influx...
 
IoT Data Streaming - Why MQTT and Kafka are a match made in heaven | Dominik ...
IoT Data Streaming - Why MQTT and Kafka are a match made in heaven | Dominik ...IoT Data Streaming - Why MQTT and Kafka are a match made in heaven | Dominik ...
IoT Data Streaming - Why MQTT and Kafka are a match made in heaven | Dominik ...
 
Blockchain and Kafka - A Modern Love Story | Suhavi Sandhu, Guidewire Software
Blockchain and Kafka - A Modern Love Story | Suhavi Sandhu, Guidewire SoftwareBlockchain and Kafka - A Modern Love Story | Suhavi Sandhu, Guidewire Software
Blockchain and Kafka - A Modern Love Story | Suhavi Sandhu, Guidewire Software
 
Risk Management in Retail with Stream Processing
Risk Management in Retail with Stream ProcessingRisk Management in Retail with Stream Processing
Risk Management in Retail with Stream Processing
 
Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...
Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...
Risk Management in Retail with Stream Processing (Daniel Jagielski, Virtuslab...
 
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, GlooHow a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
 
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and ImplyAchieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
 

Semelhante a Model-driven and low-code development for event-based systems | Bobby Calderwood, Evident Systems LLC

Mobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs PlatformMobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs Platform
Dipesh Mukerji
 

Semelhante a Model-driven and low-code development for event-based systems | Bobby Calderwood, Evident Systems LLC (20)

Oracle Forms Modernization Roadmap
Oracle Forms Modernization RoadmapOracle Forms Modernization Roadmap
Oracle Forms Modernization Roadmap
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
20160422 Speedy Framework Enterprise Application Development Platform
20160422 Speedy Framework Enterprise Application Development Platform20160422 Speedy Framework Enterprise Application Development Platform
20160422 Speedy Framework Enterprise Application Development Platform
 
Design Systems: Enterprise UX Evolution
Design Systems: Enterprise UX EvolutionDesign Systems: Enterprise UX Evolution
Design Systems: Enterprise UX Evolution
 
Mobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs PlatformMobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs Platform
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 
Dev ops days berlin damien caro
Dev ops days berlin   damien caroDev ops days berlin   damien caro
Dev ops days berlin damien caro
 
Cloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingCloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and Mapping
 
Blue mix overview
Blue mix overviewBlue mix overview
Blue mix overview
 
Mdsd capable target architecture
Mdsd capable target architectureMdsd capable target architecture
Mdsd capable target architecture
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
 
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
 
Keeping in Touch -- Collaborative Technologies
Keeping in Touch -- Collaborative TechnologiesKeeping in Touch -- Collaborative Technologies
Keeping in Touch -- Collaborative Technologies
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPages
 
SharePoint as a Business Platform Why, What and How? – No Code
SharePoint as a Business Platform Why, What and How? – No CodeSharePoint as a Business Platform Why, What and How? – No Code
SharePoint as a Business Platform Why, What and How? – No Code
 

Mais de HostedbyConfluent

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 

Mais de HostedbyConfluent (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Renaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit LondonRenaming a Kafka Topic | Kafka Summit London
Renaming a Kafka Topic | Kafka Summit London
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at TrendyolEvolution of NRT Data Ingestion Pipeline at Trendyol
Evolution of NRT Data Ingestion Pipeline at Trendyol
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking TechniquesEnsuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
 
Exactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and KafkaExactly-once Stream Processing with Arroyo and Kafka
Exactly-once Stream Processing with Arroyo and Kafka
 
Fish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit LondonFish Plays Pokemon | Kafka Summit London
Fish Plays Pokemon | Kafka Summit London
 
Tiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit LondonTiered Storage 101 | Kafla Summit London
Tiered Storage 101 | Kafla Summit London
 
Building a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And WhyBuilding a Self-Service Stream Processing Portal: How And Why
Building a Self-Service Stream Processing Portal: How And Why
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
 
Navigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka ClustersNavigating Private Network Connectivity Options for Kafka Clusters
Navigating Private Network Connectivity Options for Kafka Clusters
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data PlatformApache Flink: Building a Company-wide Self-service Streaming Data Platform
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
 
Explaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy PubExplaining How Real-Time GenAI Works in a Noisy Pub
Explaining How Real-Time GenAI Works in a Noisy Pub
 
TL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit LondonTL;DR Kafka Metrics | Kafka Summit London
TL;DR Kafka Metrics | Kafka Summit London
 
A Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSLA Window Into Your Kafka Streams Tasks | KSL
A Window Into Your Kafka Streams Tasks | KSL
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Code-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink AppsCode-First Approach: Crafting Efficient Flink Apps
Code-First Approach: Crafting Efficient Flink Apps
 
Debezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC EcosystemDebezium vs. the World: An Overview of the CDC Ecosystem
Debezium vs. the World: An Overview of the CDC Ecosystem
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Model-driven and low-code development for event-based systems | Bobby Calderwood, Evident Systems LLC

  • 1. Copyright 2021 Evident Systems LLC Bobby Calderwood — September 15, 2021 Model-driven and low-code development for event-based systems
  • 2. The goal and the problem • My name is Bobby, and my team makes https://oNote.com • Our goal is to help software teams design, implement, and operate event-driven systems • Design with your team on our collaborative Event Modeling canvas • Operate via platform integrations and streaming data visualizations • Implement is a tricky one…
  • 3. A brief (and incomplete) review of model-driven and low-code approaches
  • 4. Visual programming languages • Notably Visual Basic, Scratch, Xojo, Xcode IDE and languages • Not much to say here other than, “cool!” • Often focused on UI and/or low-level program fl ow • Designed for single-process, non-situated programs with transient state • Still in common use, lots to learn from these tools
  • 5. System modeling languages • Notably UML • In theory: comprehensive round-trip engineering, integrated documentation, shared model that improves system comprehension among stakeholders • In practice: • Very little business stakeholder involvement/comprehension • Mostly about system-level concerns (nerd stuff), not so much business and user concerns • Lots of static nouns and OOP stuff, not great at describing state change over time • Some helpful stuff: sequence diagrams, state machine diagrams
  • 6. Business workflow and rules systems • Notably BPMN, BPEL, jBPM, YAWL, Drools, RETE/Clara etc. • Primarily about composing business logic rather than recording the business narrative of state change over time • Business events are transient and merely transition the FSM among states • de facto: poorly named states that are more like events (“Approved by Management”) • Business process diagramming is complex, and often devs confound business-process scale constructs with programming-language constructs • Initially intended for business users, but in reality end up being programmed by developers (tying devs hands)
  • 7. — Martin Fowler Often the central pitch for a rules engine is that it will allow the business people to specify the rules themselves, so they can build the rules without involving programmers. As so often, this can sound plausible but rarely works out in practice.
  • 8. Full stack low-code/no-code • Lots of commercial offerings here, many as outgrowths of Business Work fl ow systems • Designed to empower a legion of non-developer citizen coders, implicitly to work around slow or unresponsive IT departments • Often end up creating systems that don’t fi t in well with DevSecOps practice/ethos • Black box ops, analytics, and security increases reliance on vendor • Often very in fl exible and inextensible • Easy to get going, but hit a wall if you want to go outside of well-trodden path
  • 9. Open and standard interface definition languages • Notably WSDL, OpenAPI/Swagger, GraphQL, gRPC, AsyncAPI • Declarative and data-oriented rather than visual • De fi ne (usually transient) communication protocols • Not much structure/opinion around state over time via business events • Great for de fi ning pieces of technical infrastructure and automating boring, repetitive tasks
  • 10. UI wire-framing tools • Notably Figma, Adobe XD, Sketch.app, Balsamiq, etc. • Similar to older visual programming environments like Visual Basic, Xcode, etc. but almost exclusively focused on UI/UX design • Some limited code generation, especially for UI-components-as-functions ecosystems like React, Elm, other FRP-ish • Emerging class of schema-driven form UI tooling
  • 11. What has changed to justify a new approach to model-driven and low-code development?
  • 12. The need to understand the customer journey Web Call Center Location Mobile Social Media Email
  • 13. The need to understand the customer journey Web Call Center Location Mobile Social Media Email Business Event Log
  • 14. The need to understand the customer journey Web Call Center Location Mobile Social Media Email Business Event Log
  • 15. The need for real-time • Customer noti fi cation • Decision making • Analytics and machine learning • Systems and data integration
  • 16. Other factors • Polyglot persistence • Resurgence of functional programming ideas • Better fi t for distributed computing • Heavy in fl uence on UI development • Components as functions that specify their data requirements • Functional reactive state-management patterns, driven by business events • Useful ideas emerging from Domain-Driven Design, and related communities
  • 17. In short: Business event-based application design
  • 18. Requirements for event-based model-driven/low-code development • A model for describing how state changes over time • An extensible schema language for describing data: state, transition, transfer/ protocol • Suitable output targets • Intermediate representations • Runtime languages, libraries, frameworks
  • 19. Event Modeling describes state changes over time
  • 20. Event Modeling describes state changes over time • Focus on state change over time rather than business logic or system concerns • Explicit patterns for integrating with external systems not under our control • User experience design is fi rst-class • Semantic data transfer objects (DTOs) • Business logic fi ts into: • Limited places • Speci fi c types
  • 21. Schema languages describe immutable data values • Neutral: can target many output languages and formats • Powerful and Flexible: can describe a wide variety of data structures • Serializable and transmittable: can be saved and sent as part of an Event Model • Extensible: can be extended to fi t new use-cases and output targets
  • 22. What makes a suitable output target? • DevSecOps friendliness! • Git/SCM-amenable • Easily integrated with CI/CD pipelines • Change-log auditable • No black-boxes! • Intermediate representations vs. runtime code • Programming-language neutral and/or broad coverage and support
  • 23. Full-stack output targets UI Components Figma, etc. HTML/React output Declarative, schema-based forms Web Services Interface De fi nition gRPC via Protobufs/Avro GraphQL OpenAPI/Swagger Event Processing KSQL & ksqlDB AsyncAPI Event schemas as Avro/Protobufs/json-schema
  • 24. It all comes together: oNote generates Avro Protocol and Event Schemas
  • 25. Conclusion • Model-driven and Low-code development are worthwhile pursuits, and need a refresh for modern constraints and practices • Don’t pursue low-code development to replace dev teams with citizen coders! • Instead: • Accelerate development with robust models and generation of real code and open-standard intermediate representations • Facilitate feedback from ops/production (coming to oNote soon!) • Facilitate communication and learning along value chain via shared goals, incentives, and models