SlideShare a Scribd company logo
1 of 24
Download to read offline
Dan Farrelly
Founder, Inngest
Building a Pluggable,
Cloud-native Event-driven
Serverless Architecture
● What is Inngest?
● What did we set out to build and why?
● Our approach
● Principles of the system design
● Where we are today and where we’re headed
Outline
What we’ll cover
Dan Farrelly
● Founder, Inngest.com
● Former CTO @ Buffer.com
● Interests:
○ Event-driven systems
○ Home restoration
● dan@inngest.com
● @djfarrelly
Who is speaking to you?
About Inngest
● Inngest is an event-driven platform that makes it easy for developers
to build, test, then deploy serverless functions triggered by events —
without worrying about infrastructure, queues, or stateful services.
● “An event-driven architecture in a box”
Features: schema registry, logging, metrics, SDKs and tooling
● Inngest: A Platform + Open Source project
● Our Mission:
“To accelerate the adoption of event-based architecture.”
The backstory
Why this goal?
● We think event-driven can be a beautifully simple way to build
● There currently is a large learning curve
● There is lack of awareness to broad developer community
● We want to introduce event-driven systems to developers in an
approachable way.
Why this goal?
The backstory
High level system design ideas
The backstory
● A fundamentally simple system design
○ Make it approachable
○ Provide an abstraction layer with batteries included
○ Enable reactive applications
● Inngest combines event streams with job scheduling in an easy to
use system
● It should be easy to build applications for
● There shouldn’t be a huge learning curve
● Great Developer Experience (DX)
● A cloud-native solution (Either hosted or Self-hosted)
○ The cloud solution needs to be a pluggable architecture (Open Core)
Our focuses
The backstory
● Developer SDK
○ Define functions, not consumers
○ SDK generates the configuration necessary
and guide the developer while writing code
● Core user needs
○ Consumers are defined as functions a in
standard format
○ Simple to send (publish) events (just JSON)
○ Versioning, throttling, idempotency,
concurrency should all be included
Simple to build
Developer Experience
● Functions should be able to run in different runtime environments
○ HTTP
○ Docker runtimes (local, Kubernetes, etc.)
○ Serverless runtimes (e.g. Lambda)
● SDK can enable write-once-ship-anywhere
● Mix and match - depending on use-case
Runtime Agnostic
Developer Experience
● Automatic event schema parsing and storage
● Type generation from event schemas
● Tight integration with SDK for easy use of Types
● Tooling to share types across teams/services/repos
Event Schema Registry & Types
Developer Experience
$ inngest types ts -o __types__.ts
● Principle: Run on any cloud (or your own machine)
○ Cloud: It should support services that are common and can be spun up on different
cloud providers (e.g. Postgres, Redis, Kafka)
○ Local: It should be able to run in-memory for local dev or end-to-end testing
● Drivers are the way
Platform Agnostic
Pluggable Architecture
High-Level Architecture
Pluggable Architecture
● Event API - Receives events,
handles publishing authn & authz
● Runner - Consumes & records
events, determines functions to
execute (as job).
● Executor - Executes function
steps from job queue on external
runtimes, manages job state.
● Core API - CRUD for system data
(functions, keys, events, logs).
Services
Pluggable Architecture
● Event Stream - e.g. PubSub,
Kafka, NATS.
● DataStore - System data (keys,
functions configuration, history);
e.g. Postgres
● Job Queue - Functions to be
executed; e.g. Redis, SQS
● Job State - Job context, pauses,
retry & failure info; e.g Redis
Swappable Components (Drivers)
Pluggable Architecture
● Function Runtimes - System drivers
can “enable” different runtime
targets.
○ Runtime: Docker / Target: local docker
client, Kubernetes, Nomad, ECS
○ Runtime: HTTP / Target: Your web server
○ Runtime: Serverless / Target: AWS
Lambda, etc.
○ Future? WASM?
Runtimes
Pluggable Architecture
● Single-dependency development environment (inngest dev)
○ Often challenging for developers to emulate production environments on their
machines (e.g. docker compose up -f everything.yml)
○ Avoid costs and awkwardness of shared cloud resources
○ A UI for visual developers
● Enables E2E testing in CI/CD
In-memory Implementations
Pluggable Architecture
● Decoupling points choosing to enable:
○ Customized deployments for special needs
○ Hosted-Self/hosted hybrid setups (BYO Kafka stream or Kubernetes cluster)
● Running multi-cloud or multi-region (e.g. for data sovereignty)
Cloud-Hybrid Configurations
Pluggable Architecture
● Golang
○ You probably could have guessed this.
○ Leaning into packages like Go Cloud
Development Kit (Go CDK) [gocloud.dev]
to leverage fantastic community drivers
for various cloud services.
○ A single binary
● Learning through operating a cloud
service backed by the code
How we’re building it
Pluggable Architecture
Inngest Cloud
● In-memory implementations of all drivers
● Drivers MVP (Postgres, Redis)
● “Cloud stacks” via Terraform
○ AWS Hosted stack (ECS, SQS, Elasticache)
● Seeking feedback
Where we’re at today
Pluggable Architecture
$ npx inngest-cli@latest dev
● Focusing on DX (SDK, local-to-prod
workflow tooling, etc.)
● Step Functions
○ Delays
○ Event coordination
○ Conditional steps/workflows
● Additional SDKs (e.g. Python)
● Additional runtimes (e.g. AWS
Lambda, GCP Cloud Functions)
Roadmap
Pluggable Architecture
● Inngest’s core will be open source
○ We want to build the system that allows developers to build reactive systems that is
powerful and approachable
○ Still more work to both extract and upstream code
● First step taken this year - way more to come!
High Level Vision & Outlook
The Future
● inngest.com
● Project Repo → github.com/inngest/inngest
○ SDK (New) → github.com/inngest/inngest-js
○ AWS Cloud Stack → bit.ly/inngest-aws-stack
● Join the discussion + Provide feedback
○ inngest.com/discord
○ @inngest
● dan@inngest.com
Over to you
The Slide with Links
Thanks!
github.com/inngest/inngest
inngest.com | @inngest | dan@inngest.com | @djfarrelly

More Related Content

Similar to Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Reactive Summit 2022

Truemotion Adventures in Containerization
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in ContainerizationRyan Hunter
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.imjacobclark
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3sHaggai Philip Zagury
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with dockerLalatendu Mohanty
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and SecurityMichael Irwin
 
NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containersaspyker
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in ProductionPatrick Mizer
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless worldMatthias Luebken
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack StorageNetApp
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native EnvironmentsWSO2
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!J On The Beach
 
Confoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile InfrastructureConfoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile InfrastructureWill Stevens
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Demi Ben-Ari
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro servicesSpyros Lambrinidis
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersinovex GmbH
 
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesRise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesDiUS
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthNicolas Brousse
 

Similar to Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Reactive Summit 2022 (20)

Truemotion Adventures in Containerization
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in Containerization
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
 
NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containers
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
 
Hello, Docker!
Hello, Docker!Hello, Docker!
Hello, Docker!
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack Storage
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!
 
Confoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile InfrastructureConfoo - DevOps & Agile Infrastructure
Confoo - DevOps & Agile Infrastructure
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary SlidesRise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
 

Recently uploaded

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Reactive Summit 2022

  • 1. Dan Farrelly Founder, Inngest Building a Pluggable, Cloud-native Event-driven Serverless Architecture
  • 2. ● What is Inngest? ● What did we set out to build and why? ● Our approach ● Principles of the system design ● Where we are today and where we’re headed Outline What we’ll cover
  • 3. Dan Farrelly ● Founder, Inngest.com ● Former CTO @ Buffer.com ● Interests: ○ Event-driven systems ○ Home restoration ● dan@inngest.com ● @djfarrelly Who is speaking to you?
  • 4. About Inngest ● Inngest is an event-driven platform that makes it easy for developers to build, test, then deploy serverless functions triggered by events — without worrying about infrastructure, queues, or stateful services. ● “An event-driven architecture in a box” Features: schema registry, logging, metrics, SDKs and tooling ● Inngest: A Platform + Open Source project ● Our Mission: “To accelerate the adoption of event-based architecture.” The backstory
  • 6. ● We think event-driven can be a beautifully simple way to build ● There currently is a large learning curve ● There is lack of awareness to broad developer community ● We want to introduce event-driven systems to developers in an approachable way. Why this goal? The backstory
  • 7. High level system design ideas The backstory ● A fundamentally simple system design ○ Make it approachable ○ Provide an abstraction layer with batteries included ○ Enable reactive applications ● Inngest combines event streams with job scheduling in an easy to use system ● It should be easy to build applications for ● There shouldn’t be a huge learning curve
  • 8. ● Great Developer Experience (DX) ● A cloud-native solution (Either hosted or Self-hosted) ○ The cloud solution needs to be a pluggable architecture (Open Core) Our focuses The backstory
  • 9. ● Developer SDK ○ Define functions, not consumers ○ SDK generates the configuration necessary and guide the developer while writing code ● Core user needs ○ Consumers are defined as functions a in standard format ○ Simple to send (publish) events (just JSON) ○ Versioning, throttling, idempotency, concurrency should all be included Simple to build Developer Experience
  • 10. ● Functions should be able to run in different runtime environments ○ HTTP ○ Docker runtimes (local, Kubernetes, etc.) ○ Serverless runtimes (e.g. Lambda) ● SDK can enable write-once-ship-anywhere ● Mix and match - depending on use-case Runtime Agnostic Developer Experience
  • 11. ● Automatic event schema parsing and storage ● Type generation from event schemas ● Tight integration with SDK for easy use of Types ● Tooling to share types across teams/services/repos Event Schema Registry & Types Developer Experience $ inngest types ts -o __types__.ts
  • 12. ● Principle: Run on any cloud (or your own machine) ○ Cloud: It should support services that are common and can be spun up on different cloud providers (e.g. Postgres, Redis, Kafka) ○ Local: It should be able to run in-memory for local dev or end-to-end testing ● Drivers are the way Platform Agnostic Pluggable Architecture
  • 14. ● Event API - Receives events, handles publishing authn & authz ● Runner - Consumes & records events, determines functions to execute (as job). ● Executor - Executes function steps from job queue on external runtimes, manages job state. ● Core API - CRUD for system data (functions, keys, events, logs). Services Pluggable Architecture
  • 15. ● Event Stream - e.g. PubSub, Kafka, NATS. ● DataStore - System data (keys, functions configuration, history); e.g. Postgres ● Job Queue - Functions to be executed; e.g. Redis, SQS ● Job State - Job context, pauses, retry & failure info; e.g Redis Swappable Components (Drivers) Pluggable Architecture
  • 16. ● Function Runtimes - System drivers can “enable” different runtime targets. ○ Runtime: Docker / Target: local docker client, Kubernetes, Nomad, ECS ○ Runtime: HTTP / Target: Your web server ○ Runtime: Serverless / Target: AWS Lambda, etc. ○ Future? WASM? Runtimes Pluggable Architecture
  • 17. ● Single-dependency development environment (inngest dev) ○ Often challenging for developers to emulate production environments on their machines (e.g. docker compose up -f everything.yml) ○ Avoid costs and awkwardness of shared cloud resources ○ A UI for visual developers ● Enables E2E testing in CI/CD In-memory Implementations Pluggable Architecture
  • 18. ● Decoupling points choosing to enable: ○ Customized deployments for special needs ○ Hosted-Self/hosted hybrid setups (BYO Kafka stream or Kubernetes cluster) ● Running multi-cloud or multi-region (e.g. for data sovereignty) Cloud-Hybrid Configurations Pluggable Architecture
  • 19. ● Golang ○ You probably could have guessed this. ○ Leaning into packages like Go Cloud Development Kit (Go CDK) [gocloud.dev] to leverage fantastic community drivers for various cloud services. ○ A single binary ● Learning through operating a cloud service backed by the code How we’re building it Pluggable Architecture Inngest Cloud
  • 20. ● In-memory implementations of all drivers ● Drivers MVP (Postgres, Redis) ● “Cloud stacks” via Terraform ○ AWS Hosted stack (ECS, SQS, Elasticache) ● Seeking feedback Where we’re at today Pluggable Architecture $ npx inngest-cli@latest dev
  • 21. ● Focusing on DX (SDK, local-to-prod workflow tooling, etc.) ● Step Functions ○ Delays ○ Event coordination ○ Conditional steps/workflows ● Additional SDKs (e.g. Python) ● Additional runtimes (e.g. AWS Lambda, GCP Cloud Functions) Roadmap Pluggable Architecture
  • 22. ● Inngest’s core will be open source ○ We want to build the system that allows developers to build reactive systems that is powerful and approachable ○ Still more work to both extract and upstream code ● First step taken this year - way more to come! High Level Vision & Outlook The Future
  • 23. ● inngest.com ● Project Repo → github.com/inngest/inngest ○ SDK (New) → github.com/inngest/inngest-js ○ AWS Cloud Stack → bit.ly/inngest-aws-stack ● Join the discussion + Provide feedback ○ inngest.com/discord ○ @inngest ● dan@inngest.com Over to you The Slide with Links