SlideShare a Scribd company logo
DATOMIC CLOUD AND
AWS APPSYNC
SERVERLESS CHICAGO - APRIL 26, 2018
INTRO
YOUR HUMBLE NARRATOR
▸ Chris Johnson Bidler
▸ CTO at Centriq Technology, Inc.
▸ Previously Transunion, SPS Commerce, McKesson
▸ Lots of Java -> Quite a bit of Devops -> Architecture
▸ AWS Certified Associate Developer, SA, Devops
Engineer
▸ chris@centriqhome.com
SO WHAT ARE WE DOING?
ORIGINAL PLAN
▸ Talk about Datomic generally
▸ Walk through new developments re: Datomic Cloud
▸ Show a very simple integration of Datomic Cloud and a
generic Lambda/Serverless environment
SO WHAT ARE WE DOING?
THEN CAME REACT AMSTERDAM…
SO WHAT ARE WE DOING?
NEW PLAN!
▸ Talk about Datomic generally
▸ Walk through new developments re: Datomic Cloud
▸ Set up a Datomic Cloud environment
▸ Do the minimum to make it amenable to participation in
AppSync resolvers
▸ Show that instead
DATOMIC
SO WHAT IS “DATOMIC”?
▸ https://www.datomic.com
▸ Database of immutable facts rather than mutable records
▸ Not a relational store - entities can have any attribute without
sparse tables or complex joins
▸ Not a NoSQL store - attributes and value types are specified in a
schema
▸ Each fact is comprised of:
▸ Entity, Attribute, Value, Time
DATOMIC
EXAMPLE FACT - JOHN LIKES PIZZA
e: <opaque id ref for “John”>,
a: “likes”,
v: [“Pizza”],
t: 100
EXAMPLE FACT - JOHN LIKES PIZZA AND ICE CREAM
e: <opaque id ref for “John”>,
a: “likes”,
v: [“Pizza”, “Ice Cream”],
t: 191
DATOMIC
EXAMPLE FACT - JOHN LIKES MIXING THINGS UP
e: <opaque id ref for “John”>,
a: “likes”,
v: [“Pizza”, “Ice Cream”, “Beer”],
t: 224
EXAMPLE FACT - JOHN HAD A BAD EXPERIENCE
e: <opaque id ref for “John”>,
a: “likes”,
v: [“Pizza”],
t: 301
DATOMIC
USEFUL PROPERTIES OF DATOMIC
▸ Data modeling is (almost all) deferred to query time
▸ Accumulate-only, immutable stream of facts means that you can
create arbitrary “views” over your data just by writing (or
refining) a query
▸ Reads can scale arbitrarily - peers read directly from storage and
don’t need to coordinate with anything to pull reads
▸ Writes create a consistent state that can be replayed, queried,
etc. (“what was every value of the db at the time this bug
occurred”)
DATOMIC
QUERYING A DATOMIC DATABASE
▸ Datomic exposes a logic programming query model called
Datalog (modeled on Prolog/Cascalog)
▸ Allows you to ask interesting questions about the db as a whole
▸ Walking a graph-like structure is simple because you can have
reference attributes on any entity which point to another entity
as the value
▸ Since queries are against an immutable set of facts, even
queries that consider a large amount of data can be quite fast
DATOMIC CLOUD
SO WHY DOESN’T THIS GET USED EVERYWHERE?
▸ First-class language is Clojure
▸ Publishing of the wire protocol for clients is Coming
Soon™
▸ Robust native support for languages other than Clojure
(incl. Clojurescript) is On The Roadmap™
▸ Until recently, the way to run it was to pay an enterprise
license fee and stand up some beefy EC2 instances that
you own, upgrade, monitor, etc.
DATOMIC CLOUD
ENTER DATOMIC CLOUD
▸ AWS Marketplace offering
▸ Completely managed Datomic database-as-a-service
▸ “Solo” topology is good enough for experiments and PoC,
costs about a dollar a day
▸ “Production” topology costs more, has much better
resilience, beefier compute, better CloudWatch dashboard
DATOMIC CLOUD
STANDING UP DATOMIC CLOUD SOLO
DATOMIC CLOUD
STANDING UP DATOMIC CLOUD SOLO - STACKS UP
DATOMIC CLOUD
STANDING UP DATOMIC CLOUD SOLO
DATOMIC CLOUD
STANDING UP DATOMIC CLOUD SOLO - DASHBOARD
DATOMIC CLOUD
STANDING UP DATOMIC CLOUD SOLO - POLICY FOR ADMINS
DATOMIC CLOUD
STANDING UP DATOMIC CLOUD SOLO - ADD SSH IN FROM ?
DATOMIC CLOUD
WORKING AT THE CLOJURE REPL - ADDING SCHEMA
DATOMIC CLOUD
WORKING AT THE CLOJURE REPL - ADDING SCHEMA
DATOMIC CLOUD
WORKING AT THE CLOJURE REPL - ADDING DATA
DATOMIC CLOUD
WORKING AT THE CLOJURE REPL - QUERYING
DATOMIC CLOUD
WORKING AT THE CLOJURE REPL - QUERYING
INTEGRATION WITH APP SYNC
WHAT ARE THE CLOJURE “ENDPOINTS” IN THE API?
▸ datomic.api/transact
▸ Takes a configured connection and transacts a set of datoms
▸ Can be synchronous or async
▸ datomic.api/query
▸ Takes in a query form and a database (fetched from a connection)
▸ Returns the data in the form specified by the query
▸ Can be synchronous or async
APPSYNC INTEGRATION
WHAT IF WE JUST …WROTE A COUPLE OF LAMBDAS?
INTEGRATION WITH APP SYNC
GIVEN A SCHEMA…
INTEGRATION WITH APPSYNC
AND LAMBDA DATASOURCES FOR QUERY AND TRANSACT…
INTEGRATION WITH APPSYNC
AND LAMBDA DATASOURCES FOR QUERY AND TRANSACT…
arn:aws:lambda:us-east-2:283544993916:function:datomic-cloud-query
INTEGRATION WITH APPSYNC
AND EVEN MINIMAL CLOJURE CODE TO LIVE IN THAT LAMBDA…
APPSYNC INTEGRATION
…RESOLVERS IN ANY LANGUAGE CAN PASS
QUERIES AND MUTATIONS TO/FROM DATOMIC CLOUD!
TODO
FUTURE WORK FOR ME
▸ Publish a library that:
▸ Provides less-minimal transactor and query Lambda functions
for use with AppSync
▸ Provides a method to generate Datomic schema from
GraphQL schema statements and auto-transact them
▸ Flesh out example with Amplify and a more-real schema
▸ ???
▸ Profit!
QUESTIONS?
THANKS FOR WATCHING!
REFERENCES
▸ https://medium.com/@jamesleonis/clojure-and-aws-
serverless-basic-lambda-201b60183d6d
▸ http://www.flyingmachinestudios.com/programming/
datomic-for-five-year-olds/
▸ https://augustl.com/blog/2018/
datomic_look_at_all_the_things_i_am_not_doing/
▸ https://docs.aws.amazon.com/appsync/latest/devguide/
tutorial-lambda-resolvers.html

More Related Content

What's hot

Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
Lynn Langit
 
Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)
Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)
Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)
Seven Peaks Speaks
 
End-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.devEnd-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.dev
Konstantin Tarkus
 
Serverless
ServerlessServerless
Serverless
Iegor Fadieiev
 
Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
Lynn Langit
 
Microservices with AWS Lambda and the Serverless Framework
Microservices with AWS Lambda and the Serverless FrameworkMicroservices with AWS Lambda and the Serverless Framework
Microservices with AWS Lambda and the Serverless Framework
Rowell Belen
 
Node withoutservers aws-lambda
Node withoutservers aws-lambdaNode withoutservers aws-lambda
Node withoutservers aws-lambda
ColdFusionConference
 
OSMC 2014: Time to say goodbye to your Nagios setup | Oliver Jan
OSMC 2014: Time to say goodbye to your Nagios setup | Oliver JanOSMC 2014: Time to say goodbye to your Nagios setup | Oliver Jan
OSMC 2014: Time to say goodbye to your Nagios setup | Oliver Jan
NETWAYS
 
SQL Server on Google Cloud Platform
SQL Server on Google Cloud PlatformSQL Server on Google Cloud Platform
SQL Server on Google Cloud Platform
Lynn Langit
 
Sincronizándonos con office 365 y DirSync, integración con nuestro ad existente
Sincronizándonos con office 365 y DirSync, integración con nuestro ad existenteSincronizándonos con office 365 y DirSync, integración con nuestro ad existente
Sincronizándonos con office 365 y DirSync, integración con nuestro ad existente
Mario Cortés Flores
 
Firebase Code Lab - 2015 GDG Buffalo DevFest
Firebase Code Lab - 2015 GDG Buffalo DevFestFirebase Code Lab - 2015 GDG Buffalo DevFest
Firebase Code Lab - 2015 GDG Buffalo DevFest
Bret McGowen - NYC Google Developer Advocate
 
An experiment with AWS Lambda
An experiment with AWS LambdaAn experiment with AWS Lambda
An experiment with AWS Lambda
Daniel Vaughan
 
Serverless haskell
Serverless haskellServerless haskell
Serverless haskell
David Overton
 
Sincronizándonos con office 365, integración con nuestro AD existente
Sincronizándonos con office 365, integración con nuestro AD existenteSincronizándonos con office 365, integración con nuestro AD existente
Sincronizándonos con office 365, integración con nuestro AD existente
Alberto Pascual
 
Database, data storage, hosting with Firebase
Database, data storage, hosting with FirebaseDatabase, data storage, hosting with Firebase
Database, data storage, hosting with Firebase
Tu Pham
 
COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code
smalltown
 
Serverless Computing with AWS
Serverless Computing with AWSServerless Computing with AWS
Serverless Computing with AWS
TransferWiseSG
 
Technology | Serverless
Technology | ServerlessTechnology | Serverless
Technology | Serverless
Ani Sinanaj
 
Killing technical debt and reducing costs with Docker
Killing technical debt and reducing costs with DockerKilling technical debt and reducing costs with Docker
Killing technical debt and reducing costs with Docker
Catalin Jora
 

What's hot (19)

Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
 
Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)
Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)
Structuring node.js projects - Seven Peaks Software (Node.JS Meetup 18 nov 2021)
 
End-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.devEnd-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.dev
 
Serverless
ServerlessServerless
Serverless
 
Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
 
Microservices with AWS Lambda and the Serverless Framework
Microservices with AWS Lambda and the Serverless FrameworkMicroservices with AWS Lambda and the Serverless Framework
Microservices with AWS Lambda and the Serverless Framework
 
Node withoutservers aws-lambda
Node withoutservers aws-lambdaNode withoutservers aws-lambda
Node withoutservers aws-lambda
 
OSMC 2014: Time to say goodbye to your Nagios setup | Oliver Jan
OSMC 2014: Time to say goodbye to your Nagios setup | Oliver JanOSMC 2014: Time to say goodbye to your Nagios setup | Oliver Jan
OSMC 2014: Time to say goodbye to your Nagios setup | Oliver Jan
 
SQL Server on Google Cloud Platform
SQL Server on Google Cloud PlatformSQL Server on Google Cloud Platform
SQL Server on Google Cloud Platform
 
Sincronizándonos con office 365 y DirSync, integración con nuestro ad existente
Sincronizándonos con office 365 y DirSync, integración con nuestro ad existenteSincronizándonos con office 365 y DirSync, integración con nuestro ad existente
Sincronizándonos con office 365 y DirSync, integración con nuestro ad existente
 
Firebase Code Lab - 2015 GDG Buffalo DevFest
Firebase Code Lab - 2015 GDG Buffalo DevFestFirebase Code Lab - 2015 GDG Buffalo DevFest
Firebase Code Lab - 2015 GDG Buffalo DevFest
 
An experiment with AWS Lambda
An experiment with AWS LambdaAn experiment with AWS Lambda
An experiment with AWS Lambda
 
Serverless haskell
Serverless haskellServerless haskell
Serverless haskell
 
Sincronizándonos con office 365, integración con nuestro AD existente
Sincronizándonos con office 365, integración con nuestro AD existenteSincronizándonos con office 365, integración con nuestro AD existente
Sincronizándonos con office 365, integración con nuestro AD existente
 
Database, data storage, hosting with Firebase
Database, data storage, hosting with FirebaseDatabase, data storage, hosting with Firebase
Database, data storage, hosting with Firebase
 
COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code COSCUP 2017 - infrastructure As Code
COSCUP 2017 - infrastructure As Code
 
Serverless Computing with AWS
Serverless Computing with AWSServerless Computing with AWS
Serverless Computing with AWS
 
Technology | Serverless
Technology | ServerlessTechnology | Serverless
Technology | Serverless
 
Killing technical debt and reducing costs with Docker
Killing technical debt and reducing costs with DockerKilling technical debt and reducing costs with Docker
Killing technical debt and reducing costs with Docker
 

Similar to Serverless Chicago - Datomic Cloud and AWS AppSync - April 26 2018

AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
AWS Chicago
 
How to Design a Backend for IoT
How to Design a Backend for IoTHow to Design a Backend for IoT
How to Design a Backend for IoT
İbrahim Gürses
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
Amazon Web Services
 
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
Amazon Web Services
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
Amazon Web Services
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
Serhat Dirik
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloud
Julien SIMON
 
Going Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAMGoing Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAM
George Tourkas
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
Mark Hinkle
 
NoSQL and Cloud Services - Philip Balinow, Comfo
NoSQL and Cloud Services -  Philip Balinow, ComfoNoSQL and Cloud Services -  Philip Balinow, Comfo
NoSQL and Cloud Services - Philip Balinow, Comfo
beITconference
 
Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)
Yan Cui
 
PartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionPartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC Solution
Timothy Spann
 
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User GroupIs Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Chase Douglas
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Amazon Web Services Korea
 
Improving velocity through abstraction
Improving velocity through abstractionImproving velocity through abstraction
Improving velocity through abstraction
VictorSzoltysek
 
Herding cats in the Cloud
Herding cats in the CloudHerding cats in the Cloud
Herding cats in the Cloud
Dewey Sasser
 
IT automation: Make the server great again - toulouse devops fev 2017
IT automation: Make the server great again  - toulouse devops fev 2017IT automation: Make the server great again  - toulouse devops fev 2017
IT automation: Make the server great again - toulouse devops fev 2017
Quentin Adam
 
Moving to cloud computing step by step linthicum
Moving to cloud computing step by step linthicumMoving to cloud computing step by step linthicum
Moving to cloud computing step by step linthicum
David Linthicum
 
Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21
JDA Labs MTL
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017
DSDT_MTL
 

Similar to Serverless Chicago - Datomic Cloud and AWS AppSync - April 26 2018 (20)

AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
AWS user group Serverless in September - Chris Johnson Bidler "Go Serverless ...
 
How to Design a Backend for IoT
How to Design a Backend for IoTHow to Design a Backend for IoT
How to Design a Backend for IoT
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
A real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloudA real-life account of moving 100% to a public cloud
A real-life account of moving 100% to a public cloud
 
Going Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAMGoing Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAM
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
 
NoSQL and Cloud Services - Philip Balinow, Comfo
NoSQL and Cloud Services -  Philip Balinow, ComfoNoSQL and Cloud Services -  Philip Balinow, Comfo
NoSQL and Cloud Services - Philip Balinow, Comfo
 
Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)
 
PartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionPartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC Solution
 
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User GroupIs Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
 
Improving velocity through abstraction
Improving velocity through abstractionImproving velocity through abstraction
Improving velocity through abstraction
 
Herding cats in the Cloud
Herding cats in the CloudHerding cats in the Cloud
Herding cats in the Cloud
 
IT automation: Make the server great again - toulouse devops fev 2017
IT automation: Make the server great again  - toulouse devops fev 2017IT automation: Make the server great again  - toulouse devops fev 2017
IT automation: Make the server great again - toulouse devops fev 2017
 
Moving to cloud computing step by step linthicum
Moving to cloud computing step by step linthicumMoving to cloud computing step by step linthicum
Moving to cloud computing step by step linthicum
 
Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21
 
DSDT Meetup Nov 2017
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
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
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
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
 
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
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
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
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
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
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
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
 
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...
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
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)
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 

Serverless Chicago - Datomic Cloud and AWS AppSync - April 26 2018

  • 1. DATOMIC CLOUD AND AWS APPSYNC SERVERLESS CHICAGO - APRIL 26, 2018
  • 2. INTRO YOUR HUMBLE NARRATOR ▸ Chris Johnson Bidler ▸ CTO at Centriq Technology, Inc. ▸ Previously Transunion, SPS Commerce, McKesson ▸ Lots of Java -> Quite a bit of Devops -> Architecture ▸ AWS Certified Associate Developer, SA, Devops Engineer ▸ chris@centriqhome.com
  • 3. SO WHAT ARE WE DOING? ORIGINAL PLAN ▸ Talk about Datomic generally ▸ Walk through new developments re: Datomic Cloud ▸ Show a very simple integration of Datomic Cloud and a generic Lambda/Serverless environment
  • 4. SO WHAT ARE WE DOING? THEN CAME REACT AMSTERDAM…
  • 5. SO WHAT ARE WE DOING? NEW PLAN! ▸ Talk about Datomic generally ▸ Walk through new developments re: Datomic Cloud ▸ Set up a Datomic Cloud environment ▸ Do the minimum to make it amenable to participation in AppSync resolvers ▸ Show that instead
  • 6. DATOMIC SO WHAT IS “DATOMIC”? ▸ https://www.datomic.com ▸ Database of immutable facts rather than mutable records ▸ Not a relational store - entities can have any attribute without sparse tables or complex joins ▸ Not a NoSQL store - attributes and value types are specified in a schema ▸ Each fact is comprised of: ▸ Entity, Attribute, Value, Time
  • 7. DATOMIC EXAMPLE FACT - JOHN LIKES PIZZA e: <opaque id ref for “John”>, a: “likes”, v: [“Pizza”], t: 100 EXAMPLE FACT - JOHN LIKES PIZZA AND ICE CREAM e: <opaque id ref for “John”>, a: “likes”, v: [“Pizza”, “Ice Cream”], t: 191
  • 8. DATOMIC EXAMPLE FACT - JOHN LIKES MIXING THINGS UP e: <opaque id ref for “John”>, a: “likes”, v: [“Pizza”, “Ice Cream”, “Beer”], t: 224 EXAMPLE FACT - JOHN HAD A BAD EXPERIENCE e: <opaque id ref for “John”>, a: “likes”, v: [“Pizza”], t: 301
  • 9. DATOMIC USEFUL PROPERTIES OF DATOMIC ▸ Data modeling is (almost all) deferred to query time ▸ Accumulate-only, immutable stream of facts means that you can create arbitrary “views” over your data just by writing (or refining) a query ▸ Reads can scale arbitrarily - peers read directly from storage and don’t need to coordinate with anything to pull reads ▸ Writes create a consistent state that can be replayed, queried, etc. (“what was every value of the db at the time this bug occurred”)
  • 10. DATOMIC QUERYING A DATOMIC DATABASE ▸ Datomic exposes a logic programming query model called Datalog (modeled on Prolog/Cascalog) ▸ Allows you to ask interesting questions about the db as a whole ▸ Walking a graph-like structure is simple because you can have reference attributes on any entity which point to another entity as the value ▸ Since queries are against an immutable set of facts, even queries that consider a large amount of data can be quite fast
  • 11. DATOMIC CLOUD SO WHY DOESN’T THIS GET USED EVERYWHERE? ▸ First-class language is Clojure ▸ Publishing of the wire protocol for clients is Coming Soon™ ▸ Robust native support for languages other than Clojure (incl. Clojurescript) is On The Roadmap™ ▸ Until recently, the way to run it was to pay an enterprise license fee and stand up some beefy EC2 instances that you own, upgrade, monitor, etc.
  • 12. DATOMIC CLOUD ENTER DATOMIC CLOUD ▸ AWS Marketplace offering ▸ Completely managed Datomic database-as-a-service ▸ “Solo” topology is good enough for experiments and PoC, costs about a dollar a day ▸ “Production” topology costs more, has much better resilience, beefier compute, better CloudWatch dashboard
  • 13. DATOMIC CLOUD STANDING UP DATOMIC CLOUD SOLO
  • 14. DATOMIC CLOUD STANDING UP DATOMIC CLOUD SOLO - STACKS UP
  • 15. DATOMIC CLOUD STANDING UP DATOMIC CLOUD SOLO
  • 16. DATOMIC CLOUD STANDING UP DATOMIC CLOUD SOLO - DASHBOARD
  • 17. DATOMIC CLOUD STANDING UP DATOMIC CLOUD SOLO - POLICY FOR ADMINS
  • 18. DATOMIC CLOUD STANDING UP DATOMIC CLOUD SOLO - ADD SSH IN FROM ?
  • 19. DATOMIC CLOUD WORKING AT THE CLOJURE REPL - ADDING SCHEMA
  • 20. DATOMIC CLOUD WORKING AT THE CLOJURE REPL - ADDING SCHEMA
  • 21. DATOMIC CLOUD WORKING AT THE CLOJURE REPL - ADDING DATA
  • 22. DATOMIC CLOUD WORKING AT THE CLOJURE REPL - QUERYING
  • 23. DATOMIC CLOUD WORKING AT THE CLOJURE REPL - QUERYING
  • 24. INTEGRATION WITH APP SYNC WHAT ARE THE CLOJURE “ENDPOINTS” IN THE API? ▸ datomic.api/transact ▸ Takes a configured connection and transacts a set of datoms ▸ Can be synchronous or async ▸ datomic.api/query ▸ Takes in a query form and a database (fetched from a connection) ▸ Returns the data in the form specified by the query ▸ Can be synchronous or async
  • 25. APPSYNC INTEGRATION WHAT IF WE JUST …WROTE A COUPLE OF LAMBDAS?
  • 26. INTEGRATION WITH APP SYNC GIVEN A SCHEMA…
  • 27. INTEGRATION WITH APPSYNC AND LAMBDA DATASOURCES FOR QUERY AND TRANSACT…
  • 28. INTEGRATION WITH APPSYNC AND LAMBDA DATASOURCES FOR QUERY AND TRANSACT… arn:aws:lambda:us-east-2:283544993916:function:datomic-cloud-query
  • 29. INTEGRATION WITH APPSYNC AND EVEN MINIMAL CLOJURE CODE TO LIVE IN THAT LAMBDA…
  • 30. APPSYNC INTEGRATION …RESOLVERS IN ANY LANGUAGE CAN PASS QUERIES AND MUTATIONS TO/FROM DATOMIC CLOUD!
  • 31. TODO FUTURE WORK FOR ME ▸ Publish a library that: ▸ Provides less-minimal transactor and query Lambda functions for use with AppSync ▸ Provides a method to generate Datomic schema from GraphQL schema statements and auto-transact them ▸ Flesh out example with Amplify and a more-real schema ▸ ??? ▸ Profit!
  • 33. REFERENCES ▸ https://medium.com/@jamesleonis/clojure-and-aws- serverless-basic-lambda-201b60183d6d ▸ http://www.flyingmachinestudios.com/programming/ datomic-for-five-year-olds/ ▸ https://augustl.com/blog/2018/ datomic_look_at_all_the_things_i_am_not_doing/ ▸ https://docs.aws.amazon.com/appsync/latest/devguide/ tutorial-lambda-resolvers.html