30
Coral: a Web API for Real-Time Streaming Computing @natalinobusa | linkedin.com/in/natalinobusa Towards Real-Time Banking APIs

Towards Real-Time banking API's: Introducing Coral, a web api for realtime streaming computing

Embed Size (px)

Citation preview

Coral: a Web API for Real-Time Streaming Computing

@natalinobusa | linkedin.com/in/natalinobusa

Towards Real-Time Banking APIs

Distributed computing Machine Learning

Statistics Big/Fast Data Streaming Computing

@natalinobusa | linkedin.com/in/natalinobusa

Why Streaming Processing?

@natalinobusa | linkedin.com/in/natalinobusa

Why Streaming Processing?

1. Relevant up-to-date information.2. Delivers actionable events.

@natalinobusa | linkedin.com/in/natalinobusa

Streaming Processing.

Inspiration:

@natalinobusa | linkedin.com/in/natalinobusa

It’s all about the right “sound”

@natalinobusa | linkedin.com/in/natalinobusa

These resources can be modeled via a web API !

@natalinobusa | linkedin.com/in/natalinobusa

It’s all about the right “sound”

@natalinobusa | linkedin.com/in/natalinobusa

It’s all about the right “sound”

@natalinobusa | linkedin.com/in/natalinobusa

Two sort of resources:- devices - waves

resource type #1: Actors

Trigger Emit

Params

State

@natalinobusa | linkedin.com/in/natalinobusa

resource type #1: Actors

Trigger Emit

Params

State

POST http://coral/api/actors

{ "type":"stats", "params":{ "field": "amount" }, "group":{ "by":"tag" }}

@natalinobusa | linkedin.com/in/natalinobusa

resource type #1: Actors

Trigger Emit

Params

State

GET http://coral/api/actors/23

{ "actors": { "def": { "type": "stats", "params": { "field": "amount" } }, "state": { "count": 134, "avg": 39.84, "min": 1.99, "max": 204.19, "sd": 38.01 } }}

@natalinobusa | linkedin.com/in/natalinobusa

REST API:

dynamically compose your data-flow processing

@natalinobusa | linkedin.com/in/natalinobusa

resource type #2: Data quants/events

Data events data resources:

● RESTful● Ephemeral● Form Free● Json

@natalinobusa | linkedin.com/in/natalinobusa

resource type #2: Data quants/events

Data events

POST http://coral/api/actors/23/in

{ "amount":23.45, "user": 76232, "city": "Berlin"}

@natalinobusa | linkedin.com/in/natalinobusa

resource type #2: Data quants/events

Data events

POST http://coral/api/actors/23/in

The “in” endpoint describes not the single events but the stream as a ever-changing RESTful resource.

@natalinobusa | linkedin.com/in/natalinobusa

Connecting to the world

@natalinobusa | linkedin.com/in/natalinobusa

How do RESTful Actors produce and consume data?

@natalinobusa | linkedin.com/in/natalinobusa

Actor can connect as a

● Client● Server

How do RESTful Actors produce and consume data?

Actor can communicate as

● http req/resp● (long) polling● Server Sent Events● Web Sockets

@natalinobusa | linkedin.com/in/natalinobusa

Some examples:

API: REST serverActor: REST client

APIOld Skool

polling

@natalinobusa | linkedin.com/in/natalinobusa

How to get streaming? Some examples:

API: REST serverActor: REST client

API

API: SSE Streaming ServerActor: Streaming client

API

Old Skool

polling

Streaming

Server-Sent-Events

@natalinobusa | linkedin.com/in/natalinobusa

Some examples:

API: REST serverActor: REST client

API

Client Client: Http clientActor: REST server

API: SSE Streaming ServerActor: Streaming client

API

Old Skool

polling

Streaming

Server-Sent-Events

IoT scenario’s

@natalinobusa | linkedin.com/in/natalinobusa

10 yrs 5 yrs 1 yr 1 month 1 day 1hour 1m

time

po

pu

lati

on

: eve

nts

, tra

nsa

ctio

ns,

se

ssio

ns,

cu

sto

mer

s, e

tc

Customer Journey Analytics

Recent datastreaming analytics

historical big data

Positioning Streaming and Real-Time

@natalinobusa | linkedin.com/in/natalinobusa

Stre

amin

g an

d

Reat-T

ime

Some words about the architecture:

@natalinobusa | linkedin.com/in/natalinobusa

Why stop at http? Enable Kafka, and datastores connections too ...

The Coral model is a hybrid streaming/batch architecture:

● in process computing (akka)● in memory state persistence (cassandra)● in memory analytics (spark)

Some words about the architecture:

@natalinobusa | linkedin.com/in/natalinobusa

The Product: Coral

● a web api to define/manage/run streaming data-flows● configuration over programming● open source and community managed● it's event processing as a service!

@natalinobusa | linkedin.com/in/natalinobusa

Star us on github!

@natalinobusa | linkedin.com/in/natalinobusa

https://github.com/coral-streaming

Distributed computing Machine Learning

Statistics Big/Fast Data Streaming Computing

@natalinobusa | linkedin.com/in/natalinobusa