SlideShare a Scribd company logo
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 Containerization
Ryan 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 k3s
Haggai Philip Zagury
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
Lalatendu Mohanty
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
Michael Irwin
 
NetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & ContainersNetflixOSS Meetup S6E1 - Titus & Containers
NetflixOSS Meetup S6E1 - Titus & Containers
aspyker
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
Patrick Mizer
 
Hello, Docker!
Hello, Docker!Hello, Docker!
Hello, Docker!
Michael Kwesi Essandoh
 
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
Matthias Luebken
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack Storage
NetApp
 
[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
WSO2
 
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 Infrastructure
Will 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 services
Spyros Lambrinidis
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
inovex 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 Slides
DiUS
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
Dmytro 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 Month
Nicolas 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

Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
maazsz111
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 

Recently uploaded (20)

Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 

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