Serverless
Powered
Low-Code
Coders
DevX
is key
Low-coders
Go as fast
as you can
What is
low-code / no-code
Accelerate app delivery
by reducing
the hand-coding
low-code no-code
A word about me
Alex-Adrien
AUGER
SOLUTIONS ARCHITECT
@AlexAdrienAuger
/in/alex-adrien
Great tech Great speed
What I bring
What’s the issue
with low-code / no-code Real apps have APIs
OPEN BANKING HEALTHCARE
TELECOMMUNICATIONS GOV
Transactions
management
Payment
Health data computing
Clinical results
Messages (SMS,
emails, …)
Notifications
Tax reports deposit
Rights management
APIs mean code
Embedded
connectors
low-code
platforms
Custom
connectors
What’s the issue
with low-code / no-code
What’s the issue with
low-code / no-code
Code means
DevX matters
How to plug low-code products
to APIs with a great DevX?
APIs are tough to plug into
as they are not uniform
low-code product
SOAP API Flat file
GraphQL
API
REST API
Low-code
Permissions
REST API
File
bucket
Bank
SOAP API
GET REPORT FILE
RESPONSE
ASK FOR
TRANSFER PERMISSION
RESPONSE
ORDER BANK TRANSFER
RESPONSE
1
I looked at design patterns
for help: the facade pattern
low-code product
SOAP API Flat file
GraphQL
API
REST API
Facade
Step 1
Define your need
Step 3
Write your facade
by writing business
logic code
01
03
Step 2
Develop first-level
API connectors
02
“I want to order a
transfer for my user,
but I need to check if it
is possible first”
- Download report file
- Make sure transfer is possible
- Ask permissions
- If permission granted: send order
To develop:
get FTP CSV file
GET /permission
<soapenv:Transfer />
1
The facade pattern drastically improves
the DevX of plugging into an API
Developer
Before
Low-code
API
API
API
API
After
Low-code
Dedicated
API
API
API
API
API
1
APIs are also unpredictable
API 1
API 2
API 3
Your app
Time
2
Defensive design is the key to a robust implementation of APIs
Data
validation
Retry
Dead letter
queue
Circuit
breaker
Data
validation
Data
validation
{
first_name: “Alex-Adrien”,
last_name: “Auger”
}
{
first_name: “Alex-Adrien”,
last_name: 1
}
Proceed
Connect
Max attempts reached ?
Wait
Abort
Down Half-open
Healthy
Request Request Request Request
Request Request Request
API requests
Dead letter queue
2
We clarified that in real life, we need
code. If we need code, we need a bunch
of other things.
low-code products
API
Cloud
deployment
Code
review
Tests
3
Serverless functions is the
north star of true DevOps
Store data
in DynamoDB
Expose API over
HTTPS on API Gateway
Trigger API on
CloudWatch Events
API code
is stored in
S3
Lambda
Serverless
3
Overall solution
Front-end
User action API
Services
Database
Data enrichment API
low-code
app
User action API :
Embed a link in the app
Add user features that require operations outside
of the low-code scope
How ?
User triggers the API
by clicking on the link
Data enrichment API :
Perform scheduled actions
Manipulate the low-code app data using
inputs from other services API
How ?
Trigger the API at
scheduled time
React to data manipulation
How ?
Trigger the API when an
event occurs
serverless.yml
reports.js
Example
handler.js
Facade Retry
Thank you
Q&A?

apidays LIVE Jakarta - Serverless powered Low Code by Alex-Adrien Auger, Sipios

  • 1.
  • 2.
  • 3.
  • 4.
    What is low-code /no-code Accelerate app delivery by reducing the hand-coding low-code no-code
  • 5.
    A word aboutme Alex-Adrien AUGER SOLUTIONS ARCHITECT @AlexAdrienAuger /in/alex-adrien Great tech Great speed What I bring
  • 6.
    What’s the issue withlow-code / no-code Real apps have APIs OPEN BANKING HEALTHCARE TELECOMMUNICATIONS GOV Transactions management Payment Health data computing Clinical results Messages (SMS, emails, …) Notifications Tax reports deposit Rights management
  • 7.
  • 8.
    What’s the issuewith low-code / no-code Code means DevX matters
  • 9.
    How to pluglow-code products to APIs with a great DevX?
  • 10.
    APIs are toughto plug into as they are not uniform low-code product SOAP API Flat file GraphQL API REST API Low-code Permissions REST API File bucket Bank SOAP API GET REPORT FILE RESPONSE ASK FOR TRANSFER PERMISSION RESPONSE ORDER BANK TRANSFER RESPONSE 1
  • 11.
    I looked atdesign patterns for help: the facade pattern low-code product SOAP API Flat file GraphQL API REST API Facade Step 1 Define your need Step 3 Write your facade by writing business logic code 01 03 Step 2 Develop first-level API connectors 02 “I want to order a transfer for my user, but I need to check if it is possible first” - Download report file - Make sure transfer is possible - Ask permissions - If permission granted: send order To develop: get FTP CSV file GET /permission <soapenv:Transfer /> 1
  • 12.
    The facade patterndrastically improves the DevX of plugging into an API Developer Before Low-code API API API API After Low-code Dedicated API API API API API 1
  • 13.
    APIs are alsounpredictable API 1 API 2 API 3 Your app Time 2
  • 14.
    Defensive design isthe key to a robust implementation of APIs Data validation Retry Dead letter queue Circuit breaker Data validation Data validation { first_name: “Alex-Adrien”, last_name: “Auger” } { first_name: “Alex-Adrien”, last_name: 1 } Proceed Connect Max attempts reached ? Wait Abort Down Half-open Healthy Request Request Request Request Request Request Request API requests Dead letter queue 2
  • 15.
    We clarified thatin real life, we need code. If we need code, we need a bunch of other things. low-code products API Cloud deployment Code review Tests 3
  • 16.
    Serverless functions isthe north star of true DevOps Store data in DynamoDB Expose API over HTTPS on API Gateway Trigger API on CloudWatch Events API code is stored in S3 Lambda Serverless 3
  • 17.
    Overall solution Front-end User actionAPI Services Database Data enrichment API low-code app User action API : Embed a link in the app Add user features that require operations outside of the low-code scope How ? User triggers the API by clicking on the link Data enrichment API : Perform scheduled actions Manipulate the low-code app data using inputs from other services API How ? Trigger the API at scheduled time React to data manipulation How ? Trigger the API when an event occurs
  • 18.
  • 19.