Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,705 views

Published on

Banks are innovating. The purpose of this innovation is to transform bank services into meaningful and frictionless customer experiences. A key element in order to achieve that ambitious goal is by providing well tailored and reactive APIs and provide them as the building blocks for greater and smoother customer journeys and experiences. For these API’s to work, internal processes have to evolve as well from batch processing to real time event processing.

In this talk, after providing a brief introduction of the streaming computing landscape, we describe a RESTful API called “Coral” meant to design and deploy customized and flexible data flows. The user can compose data flow for a number of data streaming goals such as on-the-fly data clustering and classifiers, streaming analytics, per-event predictive analysis , real time recommenders. Once the events are processed, Coral passes the resulting analysis as auctionable events for alerting, messaging or further processing to other systems. Coral is a flexible and generic event processing platform to transform streaming data into actionable events via a RESTful API. Those data flows are defined via the Web API by connecting together basic streaming processing elements named “coral actors”. The Coral framework manages those coral actors on a distributed and scalable architecture.

Streaming and real time data processing and analytics are the key elements to an improved customer experience. In this way, you can get the most targeted processing for your domain (marketing customization, personalized recommenders, fraud detection, real time security alerting, etc.). This streaming “data flow” model implies processing customers’ events as soon as they enter via web APIs. This approach borrows a lot from distributed “data flow” concepts developed for processor architectures back in the 80’s. The “Coral” streaming processing engine is generic and built on top of world class libraries such as Akka and Spark, and fully exposed via a RESTful web API.

Published in: Internet

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

  1. 1. Coral: a Web API for Real-Time Streaming Computing @natalinobusa | linkedin.com/in/natalinobusa Towards Real-Time Banking APIs
  2. 2. Distributed computing Machine Learning Statistics Big/Fast Data Streaming Computing @natalinobusa | linkedin.com/in/natalinobusa
  3. 3. Why Streaming Processing? @natalinobusa | linkedin.com/in/natalinobusa
  4. 4. Why Streaming Processing? 1. Relevant up-to-date information. 2. Delivers actionable events. @natalinobusa | linkedin.com/in/natalinobusa
  5. 5. Streaming Processing. Inspiration: @natalinobusa | linkedin.com/in/natalinobusa
  6. 6. "Pedalboard (995939579)-2" by Pedalboard_(995939579).jpg: Michael Morel from Barcelona, Spainderivative work: Atlantictire (talk) - Pedalboard_(995939579).jpg. Licensed under Creative Commons Attribution 2.0 via Wikimedia Commons -
  7. 7. It’s all about the right “sound” @natalinobusa | linkedin.com/in/natalinobusa
  8. 8. It’s all about the right “sound” @natalinobusa | linkedin.com/in/natalinobusa Read from Twitter stream Sentiment Analytics Push recommendations
  9. 9. These resources can be modeled via a web API ! @natalinobusa | linkedin.com/in/natalinobusa
  10. 10. It’s all about the right “sound” @natalinobusa | linkedin.com/in/natalinobusa
  11. 11. It’s all about the right “sound” @natalinobusa | linkedin.com/in/natalinobusa Two sort of resources: - devices - waves
  12. 12. resource type #1: Actors Trigger Emit Params State @natalinobusa | linkedin.com/in/natalinobusa
  13. 13. 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
  14. 14. 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
  15. 15. REST API: dynamically compose your data-flow processing @natalinobusa | linkedin.com/in/natalinobusa
  16. 16. resource type #2: Data quants/events Data events data resources: ● RESTful ● Ephemeral ● Form Free ● Json @natalinobusa | linkedin.com/in/natalinobusa
  17. 17. 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
  18. 18. 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
  19. 19. Connecting to the world @natalinobusa | linkedin.com/in/natalinobusa
  20. 20. How do RESTful Actors produce and consume data? @natalinobusa | linkedin.com/in/natalinobusa Actor can connect as a ● Client ● Server
  21. 21. 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
  22. 22. Some examples: API: REST server Actor: REST client API Old Skool polling @natalinobusa | linkedin.com/in/natalinobusa
  23. 23. How to get streaming? Some examples: API: REST server Actor: REST client API API: SSE Streaming Server Actor: Streaming client API Old Skool polling Streaming Server-Sent-Events @natalinobusa | linkedin.com/in/natalinobusa
  24. 24. Some examples: API: REST server Actor: REST client API Client Client: Http client Actor: REST server API: SSE Streaming Server Actor: Streaming client API Old Skool polling Streaming Server-Sent-Events IoT scenario’s @natalinobusa | linkedin.com/in/natalinobusa
  25. 25. 10 yrs 5 yrs 1 yr 1 month 1 day 1hour 1m time population:events,transactions, sessions,customers,etc Customer Journey Analytics Recent data streaming analytics historical big data Positioning Streaming and Real-Time @natalinobusa | linkedin.com/in/natalinobusa Stream ing and R eat-Tim e
  26. 26. Some words about the architecture: @natalinobusa | linkedin.com/in/natalinobusa Why stop at http? Enable Kafka, and datastores connections too ...
  27. 27. 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
  28. 28. 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
  29. 29. Star us on github! @natalinobusa | linkedin.com/in/natalinobusa https://github.com/coral-streaming
  30. 30. Distributed computing Machine Learning Statistics Big/Fast Data Streaming Computing @natalinobusa | linkedin.com/in/natalinobusa

×