Event-sourced architectures with Luminis Technologies
|
|
- Conrad Noel Dixon
- 5 years ago
- Views:
Transcription
1 Event-sourced architectures with Luminis Technologies
2 Today's journey Event-sourcing Actors Akka Persistence Design for ES
3 Event-sourcing Is all about getting the facts straight
4 Typical 3 layer architecture UI/Client Service layer fetch modify store Database
5 Typical 3 layer architecture UI/Client Service layer fetch modify store Database Databases are shared mutable state
6 Typical entity modelling Concert artist: String date: Date availabletickets: int price: int... 1 * TicketOrder nooftickets: int userid: String
7 Typical entity modelling Concert artist = Aerosmith availabletickets = 100 price = TicketOrder TicketOrder nooftickets = 3 TicketOrder userid = 1 nooftickets = 3 userid nooftickets = 1 = 3 userid = 1
8 Typical entity modelling Concert artist = Aerosmith availabletickets = 100 price = TicketOrder TicketOrder nooftickets = 3 TicketOrder userid = 1 nooftickets = 3 userid nooftickets = 1 = 3 userid = 1 Changing the price
9 Typical entity modelling Concert artist = Aerosmith availabletickets = 100 price = TicketOrder TicketOrder nooftickets = 3 TicketOrder userid = 1 nooftickets = 3 userid nooftickets = 1 = 3 userid = 1 Changing the price
10 Typical entity modelling Concert artist = Aerosmith availabletickets = 100 price = TicketOrder TicketOrder nooftickets = 3 TicketOrder userid = 1 nooftickets = 3 userid nooftickets = 1 = 3 userid = 1 Canceling an order
11 Typical entity modelling Concert artist = Aerosmith availabletickets = 100 price = TicketOrder TicketOrder nooftickets = 3 userid = 1 nooftickets = 3 userid = 1 Canceling an order
12 Update or delete statements in your app? Congratulations, you are LOSING DATA EVERY DAY
13 Event-sourced modelling time ConcertCreated TicketsOrdered TicketsOrdered TicketsOrdered artist = Aerosmith availabletickets = 100 price = 10 nooftickets nooftickets = 3 = 3 nooftickets = 3 userid userid = 1= 1 userid = 1...
14 Event-sourced modelling time ConcertCreated TicketsOrdered TicketsOrdered TicketsOrdered artist = Aerosmith availabletickets = 100 price = 10 nooftickets nooftickets = 3 = 3 nooftickets = 3 userid userid = 1= 1 userid = 1... Changing the price
15 Event-sourced modelling time ConcertCreated TicketsOrdered TicketsOrdered TicketsOrdered PriceChanged artist = Aerosmith availabletickets = 100 price = nooftickets nooftickets = 3 = 3 nooftickets = 3 userid userid = 1= 1 userid = 1 price = 100 Changing the price
16 Event-sourced modelling time ConcertCreated TicketsOrdered TicketsOrdered TicketsOrdered PriceChanged artist = Aerosmith availabletickets = 100 price = nooftickets nooftickets = 3 = 3 nooftickets = 3 userid userid = 1= 1 userid = 1 price = 100 Canceling an order
17 Event-sourced modelling time ConcertCreated TicketsOrdered TicketsOrdered PriceChanged OrderCancelled TicketsOrdered artist = Aerosmith nooftickets nooftickets = 3 = 3 price = 100 userid = 1 nooftickets = 3 availabletickets = 100 userid userid = 1= 1 userid = 1 price = Canceling an order
18 Event-sourced modelling Immutable events Append-only storage (scalable) Replay events: reconstruct historic state Events as audit mechanism Events as integration mechanism
19 Event-sourcing: capture all changes to application state as a sequence of events Events: where from?
20 Commands & Events Do something (active) Can be rejected (validation) Can be responded to It happened. Deal with it. (facts)
21 Querying & event-sourcing How do you query a log?
22 Querying & event-sourcing How do you query a log? Command Query Responsibility Segregation
23 CQRS without ES Command Query UI/Client Service layer Database
24 CQRS without ES Command Query Command Query UI/Client UI/Client Command Query Service layer Model Model(s)? Database Datastore Datastore Datastore Datastore
25 Event-sourced CQRS Command Query UI/Client Command Model Query Model(s) Events Journal Datastore Datastore Datastore
26 Actors Mature and open source Scala & Java API Akka Cluster
27 Actors "an island of consistency in a sea of concurrency" async message send Actor mailbox state behavior Process message: update state send messages change behavior Don't worry about concurrency
28 Actors A good fit for event-sourcing? Actor mailbox state is transient mailbox is non-durable state (lost messages) behavior
29 Actors Just store all incoming messages? async message send Actor mailbox state behavior Problems with command-sourcing: side-effects poisonous (failing) messages store in journal
30 Persistence Experimental Akka module Scala & Java API Actor state persistence based on event-sourcing
31 Persistent Actor async message send (command) PersistentActor actor-id state event event Derive events from commands Store events Update state Perform sideeffects journal (actor-id)
32 Persistent Actor PersistentActor actor-id state Recover by replaying events, that update the state (no side-effects) event event journal (actor-id)
33 Persistent Actor case object Increment case object Incremented // command // event class CounterActor extends PersistentActor { def persistenceid = "counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") val receiverecover: Receive = { case Incremented => state += 1
34 Persistent Actor case object Increment case object Incremented // command // event class CounterActor extends PersistentActor { def persistenceid = "counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") val receiverecover: Receive = { case Incremented => state += 1
35 Persistent Actor case object Increment case object Incremented // command // event class CounterActor extends PersistentActor { def persistenceid = "counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") async callback (but safe to close over state) val receiverecover: Receive = { case Incremented => state += 1
36 Persistent Actor case object Increment case object Incremented // command // event class CounterActor extends PersistentActor { def persistenceid = "counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") val receiverecover: Receive = { case Incremented => state += 1
37 Persistent Actor case object Increment case object Incremented // command // event class CounterActor extends PersistentActor { def persistenceid = "counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") Isn't recovery with lots of events slow? val receiverecover: Receive = { case Incremented => state += 1
38 Snapshots class SnapshottingCounterActor extends PersistentActor { def persistenceid = "snapshotting-counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") case "takesnapshot" => savesnapshot(state) val receiverecover: Receive = { case Incremented => state += 1 case SnapshotOffer(_, snapshotstate: Int) => state = snapshotstate
39 Snapshots class SnapshottingCounterActor extends PersistentActor { def persistenceid = "snapshotting-counter" var state = 0 val receivecommand: Receive = { case Increment => persist(incremented) { evt => state += 1 println("incremented") case "takesnapshot" => savesnapshot(state) val receiverecover: Receive = { case Incremented => state += 1 case SnapshotOffer(_, snapshotstate: Int) => state = snapshotstate
40 Plugins: Journal Cassandra & Snapshot Cassandra Kafka Kafka DynamoDB MongoDB MongoDB HBase HBase EventStore EventStore JDBC JDBC
41 Plugins: Serialization Default: Java serialization Pluggable through Akka: Protobuf Kryo Avro Your own
42 Persistent View Persistent Actor Persistent View Persistent View Views poll the journal Eventually consistent Polling configurable Actor may be inactive Views track single persistence-id journal Views can have own other snapshots snapshot store datastore
43 Persistent View case object ComplexQuery class CounterView extends PersistentView { override def persistenceid: String = "counter" override def viewid: String = "counter-view" var querystate = 0 def receive: Receive = { case Incremented if ispersistent => { querystate = someverycomplicatedcalculation(querystate) // Or update a document/graph/relational database case ComplexQuery => { sender()! querystate; // Or perform specialized query on datastore
44 Persistent View case object ComplexQuery class CounterView extends PersistentView { override def persistenceid: String = "counter" override def viewid: String = "counter-view" var querystate = 0 def receive: Receive = { case Incremented if ispersistent => { querystate = someverycomplicatedcalculation(querystate) // Or update a document/graph/relational database case ComplexQuery => { sender()! querystate; // Or perform specialized query on datastore
45 Persistent View case object ComplexQuery class CounterView extends PersistentView { override def persistenceid: String = "counter" override def viewid: String = "counter-view" var querystate = 0 def receive: Receive = { case Incremented if ispersistent => { querystate = someverycomplicatedcalculation(querystate) // Or update a document/graph/relational database case ComplexQuery => { sender()! querystate; // Or perform specialized query on datastore
46 Sell concert tickets bit.ly/akka-es Commands: CreateConcert BuyTickets ChangePrice AddCapacity ConcertActor price availabletickets starttime salesrecords ConcertHistoryView $50 $75 $100 journal
47 Scaling out: Akka Cluster Single writer: persistent actor must be singleton, views may be anywhere Cluster node Cluster node Cluster node Persistent Persistent Actor Actor id = "1" id = "1" Persistent Persistent Actor Actor id = "1" id = "2" Persistent Persistent Actor Actor id = "1" id = "3" distributed journal
48 Scaling out: Akka Cluster Single writer: persistent actor must be singleton, views may be anywhere How are persistent actors distributed over cluster? Cluster node Cluster node Cluster node Persistent Persistent Actor Actor id = "1" id = "1" Persistent Persistent Actor Actor id = "1" id = "2" Persistent Persistent Actor Actor id = "1" id = "3" distributed journal
49 Scaling out: Akka Cluster Sharding: Coordinator assigns ShardRegions to nodes (consistent hashing) Actors in shard can be activated/passivated, rebalanced Cluster node Cluster node Cluster node Coordinator Persistent Persistent Actor Actor id = "1" id = "1" Shard Region Persistent Persistent Actor Actor id = "1" id = "2" Shard Region Persistent Persistent Actor Actor id = "1" id = "3" Shard Region distributed journal
50 Design for event-sourcing
51 DDD+CQRS+ES DDD: Domain Driven Design Fully consistent Fully consistent Aggregate Eventual Consistency Aggregate Root entity Root entity entity entity entity entity entity
52 DDD+CQRS+ES DDD: Domain Driven Design Persistent Fully consistent Aggregate Actor Eventual Consistency Persistent Fully consistent Aggregate Actor Root entity Message passing Root entity entity entity entity entity entity
53 DDD+CQRS+ES DDD: Domain Driven Design Persistent Fully consistent Aggregate Actor Eventual Consistency Persistent Fully consistent Aggregate Actor Root entity Message passing Root entity entity entity entity entity entity Akka Persistence is not a DDD/CQRS framework But it comes awfully close
54 Designing aggregates Focus on events Structural representation(s) follow ERD
55 Designing aggregates Focus on events Structural representation(s) follow ERD Size matters. Faster replay, less write contention Don't store derived info (use views)
56 Designing aggregates Focus on events Structural representation(s) follow ERD Size matters. Faster replay, less write contention Don't store derived info (use views) With CQRS read-your-writes is not the default When you need this, model it in a single Aggregate
57 Designing commands Self-contained Unit of atomic change Granularity and intent
58 Designing commands Self-contained Unit of atomic change Granularity and intent UpdateAddress street =... city =... vs ChangeStreet street =... ChangeCity street =...
59 Designing commands Self-contained Unit of atomic change Granularity and intent UpdateAddress street =... city =... vs ChangeStreet street =... ChangeCity street =... vs Move street =... city =...
60 Versioning Actor logic: v1 and v2 event v2 event v2 event v1 event v1
61 Versioning Actor logic: v1 and v2 Actor logic: v2 event v2 event v2 event v2 event v2 event v1 event event v1 v2 event v1 event event v1 v2
62 Versioning Actor logic: v1 and v2 Actor logic: v2 Actor logic: v2 event v2 event v2 event v2 event v2 event v2 event v2 event v1 event event v1 v2 snapshot event v1 event v1 event event v1 v2 event v1
63 Versioning Actor logic: Actor logic: Actor logic: Be backwards v1 and v2 v2 v2 compatible Avro/Protobuf event v2 event v2 event v2 Serializer can do translation event v2 event v2 event v2 snapshot event v1 event event v1 v2 event v1 Snapshot versioning: event v1 event event v1 v2 event v1 harder
64 In conclusion Event-sourcing is... Powerful but unfamiliar
65 In conclusion Event-sourcing is... Powerful Combines well with UI/Client Command Model Journal Events Query Model Datastore Datastore Datastore but unfamiliar DDD/CQRS
66 In conclusion Event-sourcing is... Powerful Combines well with Not a UI/Client Command Model Journal Events Query Model Datastore Datastore Datastore but unfamiliar DDD/CQRS
67 In conclusion Akka Actors & Akka Persistence A good fit for event-sourcing Experimental, view improvements needed async message send (command) PersistentActor actor-id state event event journal (actor-id)
68 Thank you. Luminis Technologies
Event-sourced architectures with Luminis Technologies
Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical
More informationLessons&Learned&in&Deploying&Akka& Persistence
Lessons&Learned&in&Deploying&Akka& Persistence Duncan&K.&DeVore @ironfish Akka$Days$2014 The$Challenge Turn&energy&expenditure&into&energy&revenue Commercial,&Industrials,&data¢ers,&universi9es,&etc.
More informationEasy Scalability with Akka. Distribute your domain
Easy Scalability with Akka Distribute your domain Who? BoldRadius Solutions boldradius.com Typesafe Partner Scala, Akka and Play specialists Ottawa, Saskatoon, San Francisco, Boston, Chicago, Montreal,
More informationLightbend Lagom Microservices Just Right. Duncan DeVore Henrik Engström Philly JUG - July 27, 2016
Lightbend Lagom Microservices Just Right Duncan DeVore - @ironfish Henrik Engström - @h3nk3 Philly JUG - July 27, 2016 Lagom - [lah-gome] Adequate, sufficient, just right A great explanation of Lagom:
More informationBuilding loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg
Building loosely coupled and scalable systems using Event-Driven Architecture Jonas Bonér Patrik Nordwall Andreas Källberg Why is EDA Important for Scalability? What building blocks does EDA consists of?
More informationAkka$Concurrency$Works
Akka$Concurrency$Works by#duncan#k.#devore, Viridity'Energy,'Inc. About&Viridity:&Energy&So2ware&Company Industrials,-data-centers,-universi1es,-etc. Help-customers-manage Renewables-&-storage Controllable-load
More informationExecutive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.
Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck
More informationCQRS and Event Sourcing for Java Developers Markus Eisele
CQRS and Event Sourcing for Java Developers Markus Eisele @myfear Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up Classical Architectures Application Server
More informationRealtime visitor analysis with Couchbase and Elasticsearch
Realtime visitor analysis with Couchbase and Elasticsearch Jeroen Reijn @jreijn #nosql13 About me Jeroen Reijn Software engineer Hippo @jreijn http://blog.jeroenreijn.com About Hippo Visitor Analysis OneHippo
More informationCGAR: Strong Consistency without Synchronous Replication. Seo Jin Park Advised by: John Ousterhout
CGAR: Strong Consistency without Synchronous Replication Seo Jin Park Advised by: John Ousterhout Improved update performance of storage systems with master-back replication Fast: updates complete before
More informationCIB Session 12th NoSQL Databases Structures
CIB Session 12th NoSQL Databases Structures By: Shahab Safaee & Morteza Zahedi Software Engineering PhD Email: safaee.shx@gmail.com, morteza.zahedi.a@gmail.com cibtrc.ir cibtrc cibtrc 2 Agenda What is
More informationCombining Concurrency Abstractions
Combining Concurrency Abstractions Philipp Haller Typesafe, Switzerland Correctly and Efficiently Combining Concurrency Abstractions Philipp Haller Typesafe, Switzerland The Problem Tendency to combine
More informationEnabling Persistent Memory Use in Java. Steve Dohrmann Sr. Staff Software Engineer, Intel
Enabling Persistent Memory Use in Java Steve Dohrmann Sr. Staff Software Engineer, Intel Motivation Java is a very popular language on servers, especially for databases, data grids, etc., e.g. Apache projects:
More informationSQL, NoSQL, MongoDB. CSE-291 (Cloud Computing) Fall 2016 Gregory Kesden
SQL, NoSQL, MongoDB CSE-291 (Cloud Computing) Fall 2016 Gregory Kesden SQL Databases Really better called Relational Databases Key construct is the Relation, a.k.a. the table Rows represent records Columns
More informationProcessing of big data with Apache Spark
Processing of big data with Apache Spark JavaSkop 18 Aleksandar Donevski AGENDA What is Apache Spark? Spark vs Hadoop MapReduce Application Requirements Example Architecture Application Challenges 2 WHAT
More informationModern Stream Processing with Apache Flink
1 Modern Stream Processing with Apache Flink Till Rohrmann GOTO Berlin 2017 2 Original creators of Apache Flink da Platform 2 Open Source Apache Flink + da Application Manager 3 What changes faster? Data
More informationLenses 2.1 Enterprise Features PRODUCT DATA SHEET
Lenses 2.1 Enterprise Features PRODUCT DATA SHEET 1 OVERVIEW DataOps is the art of progressing from data to value in seconds. For us, its all about making data operations as easy and fast as using the
More informationApp Engine MapReduce. Mike Aizatsky 11 May Hashtags: #io2011 #AppEngine Feedback:
App Engine MapReduce Mike Aizatsky 11 May 2011 Hashtags: #io2011 #AppEngine Feedback: http://goo.gl/snv2i Agenda MapReduce Computational Model Mapper library Announcement Technical bits: Files API User-space
More informationPhilipp Wille. Beyond Scala s Standard Library
Scala Enthusiasts BS Philipp Wille Beyond Scala s Standard Library OO or Functional Programming? Martin Odersky: Systems should be composed from modules. Modules should be simple parts that can be combined
More informationAkka: Simpler Concurrency, Scalability & Fault-tolerance through Actors. Jonas Bonér Viktor Klang
Akka: Simpler Concurrency, Scalability & Fault-tolerance through Actors Jonas Bonér Viktor Klang We believe that... Writing correct concurrent applications is too hard Scaling out applications is too hard
More informationScala Actors. Scalable Multithreading on the JVM. Philipp Haller. Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland
Scala Actors Scalable Multithreading on the JVM Philipp Haller Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland The free lunch is over! Software is concurrent Interactive applications
More informationManaging IoT and Time Series Data with Amazon ElastiCache for Redis
Managing IoT and Time Series Data with ElastiCache for Redis Darin Briskman, ElastiCache Developer Outreach Michael Labib, Specialist Solutions Architect 2016, Web Services, Inc. or its Affiliates. All
More informationUsing the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver
Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data
More informationGeorgia Institute of Technology ECE6102 4/20/2009 David Colvin, Jimmy Vuong
Georgia Institute of Technology ECE6102 4/20/2009 David Colvin, Jimmy Vuong Relatively recent; still applicable today GFS: Google s storage platform for the generation and processing of data used by services
More informationScaling out with Akka Actors. J. Suereth
Scaling out with Akka Actors J. Suereth Agenda The problem Recap on what we have Setting up a Cluster Advanced Techniques Who am I? Author Scala In Depth, sbt in Action Typesafe Employee Big Nerd ScalaDays
More informationBig Data Architect.
Big Data Architect www.austech.edu.au WHAT IS BIG DATA ARCHITECT? A big data architecture is designed to handle the ingestion, processing, and analysis of data that is too large or complex for traditional
More informationScaling. Marty Weiner Grayskull, Eternia. Yashh Nelapati Gotham City
Scaling Marty Weiner Grayskull, Eternia Yashh Nelapati Gotham City Pinterest is... An online pinboard to organize and share what inspires you. Relationships Marty Weiner Grayskull, Eternia Yashh Nelapati
More informationBroken Promises.
Broken Promises kiki @ lightbend @kikisworldrace Data is dangerous Microservices are usually required to cooperate to achieve some end goal. Microservices need to be able to trust each other in order to
More informationBuilding Reactive Applications with Akka
Building Reactive Applications with Akka Jonas Bonér Typesafe CTO & co-founder @jboner This is an era of profound change. Implications are massive, change is unavoidable Users! Users are demanding richer
More informationRelational databases
COSC 6397 Big Data Analytics NoSQL databases Edgar Gabriel Spring 2017 Relational databases Long lasting industry standard to store data persistently Key points concurrency control, transactions, standard
More informationTopics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL
Databases Topics History - RDBMS - SQL Architecture - SQL - NoSQL MongoDB, Mongoose Persistent Data Storage What features do we want in a persistent data storage system? We have been using text files to
More informationCassandra, MongoDB, and HBase. Cassandra, MongoDB, and HBase. I have chosen these three due to their recent
Tanton Jeppson CS 401R Lab 3 Cassandra, MongoDB, and HBase Introduction For my report I have chosen to take a deeper look at 3 NoSQL database systems: Cassandra, MongoDB, and HBase. I have chosen these
More informationMD-SAL APPLICATION AWARE DATA STORE (AADS)
MD-SAL APPLICATION AWARE DATA STORE (AADS) Chandramouli Venkataraman (chandramouli.venkataraman@ericsson.com) MD-SAL - Today Controller Platform APP MD-SAL Request Routing Notification Routing DOM tree
More informationSpark Streaming. Guido Salvaneschi
Spark Streaming Guido Salvaneschi 1 Spark Streaming Framework for large scale stream processing Scales to 100s of nodes Can achieve second scale latencies Integrates with Spark s batch and interactive
More informationAkka Streams and Bloom Filters
Akka Streams and Bloom Filters Or: How I learned to stop worrying and love resilient elastic distributed real-time transaction processing using space efficient probabilistic data structures The Situation
More informationClojure Lisp for the Real #clojure
Clojure Lisp for the Real World @stuartsierra #clojure 1 Bullet Points Values Code is data Generic data access Concurrency 2 Stuart Sierra Relevance, Inc. Clojure/core Clojure contributor 3 Values 4 Values
More informationTECHNICAL WHITE PAPER. Akka A to Z. An Architect s Guide To Designing, Building, And Running Reactive Systems
TECHNICAL WHITE PAPER Akka A to Z An Architect s Guide To Designing, Building, And Running Reactive Systems By Hugh McKee & Oliver White Lightbend, Inc. Table Of Contents Executive Summary... 3 A Little
More informationFLAT DATACENTER STORAGE. Paper-3 Presenter-Pratik Bhatt fx6568
FLAT DATACENTER STORAGE Paper-3 Presenter-Pratik Bhatt fx6568 FDS Main discussion points A cluster storage system Stores giant "blobs" - 128-bit ID, multi-megabyte content Clients and servers connected
More informationIntroduction to NoSQL Databases
Introduction to NoSQL Databases Roman Kern KTI, TU Graz 2017-10-16 Roman Kern (KTI, TU Graz) Dbase2 2017-10-16 1 / 31 Introduction Intro Why NoSQL? Roman Kern (KTI, TU Graz) Dbase2 2017-10-16 2 / 31 Introduction
More informationBeyond Relational Databases: MongoDB, Redis & ClickHouse. Marcos Albe - Principal Support Percona
Beyond Relational Databases: MongoDB, Redis & ClickHouse Marcos Albe - Principal Support Engineer @ Percona Introduction MySQL everyone? Introduction Redis? OLAP -vs- OLTP Image credits: 451 Research (https://451research.com/state-of-the-database-landscape)
More informationData Acquisition. The reference Big Data stack
Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Data Acquisition Corso di Sistemi e Architetture per Big Data A.A. 2016/17 Valeria Cardellini The reference
More informationWhat do you mean, Backwards Compatibility?
#gotober What do you mean, Backwards Compatibility? Trisha Gee, Java Driver Developer @trisha_gee Friday, 18 October 13 What s the problem? The Domain MongoDB is an open-source document database, featuring:
More information10/18/2017. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414
Announcements Database Systems CSE 414 Lecture 11: NoSQL & JSON (mostly not in textbook only Ch 11.1) HW5 will be posted on Friday and due on Nov. 14, 11pm [No Web Quiz 5] Today s lecture: NoSQL & JSON
More informationReactive App using Actor model & Apache Spark. Rahul Kumar Software
Reactive App using Actor model & Apache Spark Rahul Kumar Software Developer @rahul_kumar_aws About Sigmoid We build realtime & big data systems. OUR CUSTOMERS Agenda Big Data - Intro Distributed Application
More informationClojure Lisp for the Real clojure.com
Clojure Lisp for the Real World @stuartsierra clojure.com Stuart Sierra Relevance, Inc. Clojure/core Clojure contributor Values Values 3 Values 3 + 2 = 5 Values let x = 3 Values let x = 3 let x = 5 Values
More informationFLAT DATACENTER STORAGE CHANDNI MODI (FN8692)
FLAT DATACENTER STORAGE CHANDNI MODI (FN8692) OUTLINE Flat datacenter storage Deterministic data placement in fds Metadata properties of fds Per-blob metadata in fds Dynamic Work Allocation in fds Replication
More informationNoSQL Databases. CPS352: Database Systems. Simon Miner Gordon College Last Revised: 4/22/15
NoSQL Databases CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/22/15 Agenda Check-in NoSQL Databases Aggregate databases Key-value, document, and column family Graph databases Related
More information5/2/16. Announcements. NoSQL Motivation. The New Hipster: NoSQL. Serverless. What is the Problem? Database Systems CSE 414
Announcements Database Systems CSE 414 Lecture 16: NoSQL and JSon Current assignments: Homework 4 due tonight Web Quiz 6 due next Wednesday [There is no Web Quiz 5 Today s lecture: JSon The book covers
More informationDynamically Configured Stream Processing Using Flink & Kafka
Powering Cloud IT Dynamically Configured Stream Processing Using Flink & Kafka David Hardwick Sean Hester David Brelloch https://github.com/brelloch/flinkforward2017 Multi-SaaS Management What does that
More informationEvolution of an Apache Spark Architecture for Processing Game Data
Evolution of an Apache Spark Architecture for Processing Game Data Nick Afshartous WB Analytics Platform May 17 th 2017 May 17 th, 2017 About Me nafshartous@wbgames.com WB Analytics Core Platform Lead
More informationDatabase Systems CSE 414
Database Systems CSE 414 Lecture 16: NoSQL and JSon CSE 414 - Spring 2016 1 Announcements Current assignments: Homework 4 due tonight Web Quiz 6 due next Wednesday [There is no Web Quiz 5] Today s lecture:
More informationInvitation to a New Kind of Database. Sheer El Showk Cofounder, Lore Ai We re Hiring!
Invitation to a New Kind of Database Sheer El Showk Cofounder, Lore Ai www.lore.ai We re Hiring! Overview 1. Problem statement (~2 minute) 2. (Proprietary) Solution: Datomics (~10 minutes) 3. Proposed
More informationNoSQL systems. Lecture 21 (optional) Instructor: Sudeepa Roy. CompSci 516 Data Intensive Computing Systems
CompSci 516 Data Intensive Computing Systems Lecture 21 (optional) NoSQL systems Instructor: Sudeepa Roy Duke CS, Spring 2016 CompSci 516: Data Intensive Computing Systems 1 Key- Value Stores Duke CS,
More informationNoSQL & Firebase. SWE 432, Fall Web Application Development
NoSQL & Firebase SWE 432, Fall 2018 Web Application Development Review: Nouns vs. Verbs URIs should hierarchically identify nouns describing resources that exist Verbs describing actions that can be taken
More informationReal-time Financials with Microservices and Functional Programming. Vitor Guarino https://nubank.com.
Real-time Financials with Microservices and Functional Programming Vitor Guarino Olivier vitor@nubank.com.br @ura1a https://nubank.com.br/ MAIN PRODUCT Live since September 2014 A TECHNOLOGY DRIVEN APPROACH
More informationBig Streaming Data Processing. How to Process Big Streaming Data 2016/10/11. Fraud detection in bank transactions. Anomalies in sensor data
Big Data Big Streaming Data Big Streaming Data Processing Fraud detection in bank transactions Anomalies in sensor data Cat videos in tweets How to Process Big Streaming Data Raw Data Streams Distributed
More informationFast Data apps with Alpakka Kafka connector. Sean Glover,
Fast Data apps with Alpakka Kafka connector Sean Glover, Lightbend @seg1o Who am I? I m Sean Glover Senior Software Engineer at Lightbend Member of the Fast Data Platform team Organizer of Scala Toronto
More informationIn-memory data pipeline and warehouse at scale using Spark, Spark SQL, Tachyon and Parquet
In-memory data pipeline and warehouse at scale using Spark, Spark SQL, Tachyon and Parquet Ema Iancuta iorhian@gmail.com Radu Chilom radu.chilom@gmail.com Big data analytics / machine learning 6+ years
More informationA Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers
A Distributed System Case Study: Apache Kafka High throughput messaging for diverse consumers As always, this is not a tutorial Some of the concepts may no longer be part of the current system or implemented
More informationDistributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi
1 Lecture Notes 1 Basic Concepts Anand Tripathi CSci 8980 Operating Systems Anand Tripathi CSci 8980 1 Distributed Systems A set of computers (hosts or nodes) connected through a communication network.
More informationDistributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs
1 Anand Tripathi CSci 8980 Operating Systems Lecture Notes 1 Basic Concepts Distributed Systems A set of computers (hosts or nodes) connected through a communication network. Nodes may have different speeds
More informationMicroservices. Webservices with Scala (II) Microservices
Microservices Webservices with Scala (II) Microservices 2018 1 Content Deep Dive into Play2 1. Database Access with Slick 2. Database Migration with Flyway 3. akka 3.1. overview 3.2. akka-http (the http
More informationRok: Decentralized storage for the cloud native world
Whitepaper Rok: Decentralized storage for the cloud native world Cloud native applications and containers are becoming more and more popular, as enterprises realize their benefits: containers are great
More informationCS Programming Languages: Scala
CS 3101-2 - Programming Languages: Scala Lecture 6: Actors and Concurrency Daniel Bauer (bauer@cs.columbia.edu) December 3, 2014 Daniel Bauer CS3101-2 Scala - 06 - Actors and Concurrency 1/19 1 Actors
More informationHigh Performance NoSQL with MongoDB
High Performance NoSQL with MongoDB History of NoSQL June 11th, 2009, San Francisco, USA Johan Oskarsson (from http://last.fm/) organized a meetup to discuss advances in data storage which were all using
More informationMongoDB and Mysql: Which one is a better fit for me? Room 204-2:20PM-3:10PM
MongoDB and Mysql: Which one is a better fit for me? Room 204-2:20PM-3:10PM About us Adamo Tonete MongoDB Support Engineer Agustín Gallego MySQL Support Engineer Agenda What are MongoDB and MySQL; NoSQL
More informationJoost van de Wijgerd BUX. Innovating Retail Trading by going Reactive
Joost van de Wijgerd BUX Innovating Retail Trading by going Reactive! Agenda Introduction Architecture & Tech Stack Zooming in: Elastic Actors DevOps at BUX Q & A 15+ years experience a.o. JTeam (Trifork),
More informationSearch Engines and Time Series Databases
Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Search Engines and Time Series Databases Corso di Sistemi e Architetture per Big Data A.A. 2017/18
More informationMAPR TECHNOLOGIES, INC. TECHNICAL BRIEF APRIL 2017 MAPR SNAPSHOTS
MAPR TECHNOLOGIES, INC. TECHNICAL BRIEF APRIL 2017 MAPR SNAPSHOTS INTRODUCTION The ability to create and manage snapshots is an essential feature expected from enterprise-grade storage systems. This capability
More informationAn Information Asset Hub. How to Effectively Share Your Data
An Information Asset Hub How to Effectively Share Your Data Hello! I am Jack Kennedy Data Architect @ CNO Enterprise Data Management Team Jack.Kennedy@CNOinc.com 1 4 Data Functions Your Data Warehouse
More informationReliable Asynchronous Communication in Distributed Systems
Master thesis in Secure and Reliable communication at Simula@UiB Reliable Asynchronous Communication in Distributed Systems Author : Espen Johnsen February 15, 2018 Acknowledgement I would like to thank
More informationInventory (input to ECOMP and ONAP Roadmaps)
Inventory (input to ECOMP and ONAP Roadmaps) 1Q2018 2Q2018 3Q2018 4Q2018 1Q2019 2Q2019 3Q2019 4Q2019 ONAP participation and alignment Operations, Product, and other features with A&AI design impact Inventory
More informationCSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2015 Lecture 14 NoSQL
CSE 544 Principles of Database Management Systems Magdalena Balazinska Winter 2015 Lecture 14 NoSQL References Scalable SQL and NoSQL Data Stores, Rick Cattell, SIGMOD Record, December 2010 (Vol. 39, No.
More informationDistributed Systems. 22. Spark. Paul Krzyzanowski. Rutgers University. Fall 2016
Distributed Systems 22. Spark Paul Krzyzanowski Rutgers University Fall 2016 November 26, 2016 2015-2016 Paul Krzyzanowski 1 Apache Spark Goal: generalize MapReduce Similar shard-and-gather approach to
More informationMONGODB INTERVIEW QUESTIONS
MONGODB INTERVIEW QUESTIONS http://www.tutorialspoint.com/mongodb/mongodb_interview_questions.htm Copyright tutorialspoint.com Dear readers, these MongoDB Interview Questions have been designed specially
More informationfunctional thinking applying the philosophy of functional programming to system design and architecture
functional thinking applying the philosophy of functional programming to system design and architecture Jed Wesley-Smith @jedws functional programming has many benefits: better program reasonability, composition,
More informationApp Engine: Datastore Introduction
App Engine: Datastore Introduction Part 1 Another very useful course: https://www.udacity.com/course/developing-scalableapps-in-java--ud859 1 Topics cover in this lesson What is Datastore? Datastore and
More information8/24/2017 Week 1-B Instructor: Sangmi Lee Pallickara
Week 1-B-0 Week 1-B-1 CS535 BIG DATA FAQs Slides are available on the course web Wait list Term project topics PART 0. INTRODUCTION 2. DATA PROCESSING PARADIGMS FOR BIG DATA Sangmi Lee Pallickara Computer
More informationSearch and Time Series Databases
Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Search and Time Series Databases Corso di Sistemi e Architetture per Big Data A.A. 2016/17 Valeria
More informationUsing ElasticSearch to Enable Stronger Query Support in Cassandra
Using ElasticSearch to Enable Stronger Query Support in Cassandra www.impetus.com Introduction Relational Databases have been in use for decades, but with the advent of big data, there is a need to use
More informationDistributed Data Store
Distributed Data Store Large-Scale Distributed le system Q: What if we have too much data to store in a single machine? Q: How can we create one big filesystem over a cluster of machines, whose data is
More informationHow to Backup at Petabyte Scale When Every Transaction Counts
How to Backup at Petabyte Scale When Every Transaction Counts Karoly Nagy OUR GLOBALLY DISTRIBUTED TEAM DUBLIN, SAN FRANCISCO, SEATTLE & MALTA FILE, SYNC & SHARE BIGGEST DATABASES TODAY SERVER FILE JOURNAL
More informationAccelerate MySQL for Demanding OLAP and OLTP Use Cases with Apache Ignite. Peter Zaitsev, Denis Magda Santa Clara, California April 25th, 2017
Accelerate MySQL for Demanding OLAP and OLTP Use Cases with Apache Ignite Peter Zaitsev, Denis Magda Santa Clara, California April 25th, 2017 About the Presentation Problems Existing Solutions Denis Magda
More informationManaging data consistency in a microservice architecture using Sagas
Managing data consistency in a microservice architecture using Sagas Chris Richardson Founder of eventuate.io Author of Microservices Patterns Founder of the original CloudFoundry.com Author of POJOs in
More informationCSE 530A. Non-Relational Databases. Washington University Fall 2013
CSE 530A Non-Relational Databases Washington University Fall 2013 NoSQL "NoSQL" was originally the name of a specific RDBMS project that did not use a SQL interface Was co-opted years later to refer to
More informationThe Google File System
The Google File System Sanjay Ghemawat, Howard Gobioff and Shun Tak Leung Google* Shivesh Kumar Sharma fl4164@wayne.edu Fall 2015 004395771 Overview Google file system is a scalable distributed file system
More information5/1/17. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414
Announcements Database Systems CSE 414 Lecture 15: NoSQL & JSON (mostly not in textbook only Ch 11.1) 1 Homework 4 due tomorrow night [No Web Quiz 5] Midterm grading hopefully finished tonight post online
More informationDomain Driven Design Kevin van der Vlist
Domain Driven Design Kevin van der Vlist kvdvlist@sogyo.nl Objectives 1. Show the usefullnes of DDD 2/27 Objectives 1. Show the usefullnes of DDD 2. Warn you about a two headed monster 2/27 Objectives
More informationThe Stream Processor as a Database. Ufuk
The Stream Processor as a Database Ufuk Celebi @iamuce Realtime Counts and Aggregates The (Classic) Use Case 2 (Real-)Time Series Statistics Stream of Events Real-time Statistics 3 The Architecture collect
More informationAn overview of (a)sync & (non-) blocking
An overview of (a)sync & (non-) blocking or why is my web-server not responding? with funny fonts! Experiment & reproduce https://github.com/antonfagerberg/play-performance sync & blocking code sync &
More informationBigTable. Chubby. BigTable. Chubby. Why Chubby? How to do consensus as a service
BigTable BigTable Doug Woos and Tom Anderson In the early 2000s, Google had way more than anybody else did Traditional bases couldn t scale Want something better than a filesystem () BigTable optimized
More informationColumn-Family Databases Cassandra and HBase
Column-Family Databases Cassandra and HBase Kevin Swingler Google Big Table Google invented BigTableto store the massive amounts of semi-structured data it was generating Basic model stores items indexed
More informationToday CSCI Coda. Naming: Volumes. Coda GFS PAST. Instructor: Abhishek Chandra. Main Goals: Volume is a subtree in the naming space
Today CSCI 5105 Coda GFS PAST Instructor: Abhishek Chandra 2 Coda Main Goals: Availability: Work in the presence of disconnection Scalability: Support large number of users Successor of Andrew File System
More information/ Cloud Computing. Recitation 8 October 18, 2016
15-319 / 15-619 Cloud Computing Recitation 8 October 18, 2016 1 Overview Administrative issues Office Hours, Piazza guidelines Last week s reflection Project 3.2, OLI Unit 3, Module 13, Quiz 6 This week
More informationDatabases and Big Data Today. CS634 Class 22
Databases and Big Data Today CS634 Class 22 Current types of Databases SQL using relational tables: still very important! NoSQL, i.e., not using relational tables: term NoSQL popular since about 2007.
More informationDYNAMO: AMAZON S HIGHLY AVAILABLE KEY-VALUE STORE. Presented by Byungjin Jun
DYNAMO: AMAZON S HIGHLY AVAILABLE KEY-VALUE STORE Presented by Byungjin Jun 1 What is Dynamo for? Highly available key-value storages system Simple primary-key only interface Scalable and Reliable Tradeoff:
More informationJargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems
Jargons, Concepts, Scope and Systems Key Value Stores, Document Stores, Extensible Record Stores Overview of different scalable relational systems Examples of different Data stores Predictions, Comparisons
More informationEvent Sourcing. Intro & Challenges
Event Sourcing Intro & Challenges Michael Plöd innoq Principal Consultant @bitboss Most current systems only store the current state Classical Architecture IncidentRestController IncidentBusinessService
More informationDistributed Data Management Replication
Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut Distributing Data Motivation Scalability (Elasticity) If data volume, processing, or access exhausts one machine, you might want to spread
More informationNevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation
Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Microservices Autonomous API Gateway Events Service Discovery Circuit Breakers Commands Aggregates Bounded Context Event Bus Domain Events
More information