+ All Categories
Home > Technology > Message passing & NoSQL (in English)

Message passing & NoSQL (in English)

Date post: 17-Dec-2014
Category:
Upload: tuomas-hietanen
View: 655 times
Download: 2 times
Share this document with a friend
Description:
F# User Group presentation Many current topics briefly. More descriptions in the notes-tab. Same presentation in Finnish: http://www.slideshare.net/thorium/message-passing-nosql
Popular Tags:
14
Continuation, MessagePassing & NoSQL The Greater Helsinki Area F# User Group http://www.meetup.com/FSharpHelsinki/ © Tuomas Hietanen, 2012
Transcript
Page 1: Message passing & NoSQL (in English)

Continuation, MessagePassing & NoSQL

The Greater Helsinki Area F# User Group

http://www.meetup.com/FSharpHelsinki/

© Tuomas Hietanen, 2012

Page 2: Message passing & NoSQL (in English)

Forecast…

The number of different data producers increases

The number of processors and communication increases

We don’t know the runtime environment…

(Could be e.g. cloud; Azure)

Page 3: Message passing & NoSQL (in English)

Turing, state machines and objects

Nouns vs. verbs• Who is the owner of the activity?• Object versus event

The problems of state machine:• Complexity: What’s going on?• Who caused the present state? How to reproduce?• Asynchrony-problems, locks

Page 4: Message passing & NoSQL (in English)

Encapsulation of the state: Type vs Class vs Monad

Type

• No state

Class

• State may be directly exposed

• The state is also revealed through the methods

Monad

• Like no state• The state is

revealed when leaving out

Ease up programming in “a particular context”

Page 5: Message passing & NoSQL (in English)

The role of a Domain Model

Intended for developers• The computer itself doesn’t get any benefits

Attemps to model the playfield• Advantages vs. disadvantages?

Roles• Active / anemice• Can the model evolve?

Page 6: Message passing & NoSQL (in English)

Set-operations

x x x

x x y x x

y y yx = y

x = okFilter:

Projection:(“mapping”)

Page 7: Message passing & NoSQL (in English)

Set-operations

x x x

x x y x x

y y yx = y

x = okFilter:

Projection:(“mapping”)

SQL: Select … where

C#: LINQ

Other languages: Map, Filter

Cloud: MapReduce

Page 8: Message passing & NoSQL (in English)

Reactive programming

Observe the surrounding environment

Set-operations to environment events

Page 9: Message passing & NoSQL (in English)

Event sourcing (CQRS)

Event history

Aggregate the Domain Model

Notice the similarity to reactive programming

Page 10: Message passing & NoSQL (in English)

Message passing

Transport messages (Message may also be an event.)

Set-operations to messages

Page 11: Message passing & NoSQL (in English)

Actors

Don’t reveal their state

Uses message passing• May call others• …or itself

Page 12: Message passing & NoSQL (in English)

Agents

Don’t reveal their state• Handles requests

Uses message passing• May call others• …or itself

Page 13: Message passing & NoSQL (in English)

Continuation

Reify: How long to dream, and when to execute?

Possible actions: continue, complete or exception

Church vs. Call-with-current-continuation (call/cc)

Page 14: Message passing & NoSQL (in English)

NoSQL: Data without schema

Document databases• No IDs• Dualism with SQL-databases• RavenDB, MongoDB

Big Data• Log-files, GPS-data, etc• Hadoop, MapReduce


Recommended