Presentation is loading. Please wait.

Presentation is loading. Please wait.

Event Store and Web Applications Greg

Similar presentations


Presentation on theme: "Event Store and Web Applications Greg"— Presentation transcript:

1 Event Store and Web Applications Greg Young @gregyoung

2

3 Purchase Order Line Items (n) Shipping Information

4 Cart Created 3 Items Added Shipping Information Added

5 Purchase Order AddItemCommand ChangeAddressCommand AddItemCommand

6

7 Cart Created 3 Items Added 1Item Removed Shipping Information Added

8

9 6 5 4 3 2 1 7

10 5 snap 4 3 2 1 6

11

12 A single model cannot be appropriate for reporting, searching, and transactional behaviors…

13 Focus on strategic design first.

14 There is no “best” storage.

15 Focus on strategic design first.

16 A single data model is almost never appropriate. 3+ is common!

17 Focus on strategic design first.

18 IdParentIdData 10Parent 21Child1 31Child2

19 Focus on strategic design first. IdParentId0ParentId1ParentId2ParentId3ParentId4Data 100000Parent 210000Child1 312000Child2

20 Wrong models cause massive accidental complexity

21 Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate

22 Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate

23 Client Domain Bus OLAP GraphDb StreamProcessing publish 3nf Hibernate New Model?

24 Client Domain OLAP GraphDb StreamProcessing Events

25 Client Domain OLAP GraphDb StreamProcessing Events New Model

26 Client Events Client Any Producer

27 All streams are Atom Feeds

28 Atom feeds seem inefficient, are they?

29 Get Head of Stream

30 Reply with first/last links

31 Event stream 'newstream' http://127.0.0.1:2113/streams/newstream 2013-06-29T14:45:06.550308Z EventStore

32 Get Head of Stream Reply with first/last links Get Document with Links

33 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events

34 0@newstream http://127.0.0.1:2113/streams/newstream/0 2013-06-29T14:45:06.550308Z EventStore event-type 1@newstream http://127.0.0.1:2113/streams/newstream/1 2013-06-29T14:45:06.550308Z EventStore event-type

35 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events Get /streams/foo/events/1

36 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events Get /streams/foo/events/1 Reply Document with Links to Events

37 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events Get /streams/foo/events/1 Get /streams/foo/events/2 Reply Document with Links to Events

38 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events Get /streams/foo/events/1 Get /streams/foo/events/2 Reply Document with Links to Events

39 Much is forgotten here.

40 Http KeepAlives

41 Http Pipelining

42 Intermediaries!

43 Content Type Negotiation!

44 Get Head of Stream

45 Reply with first/last links

46 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events

47 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events Get /streams/foo/events/1 Get /streams/foo/events/2 Accept: app/json Accept: app/xml

48 Get Head of Stream Reply with first/last links Get Document with Links Reply Document with Links to Events Get /streams/foo/events/1 Get /streams/foo/events/2 Reply Document with Links to Events Accept: app/json Accept: app/xml ContentType: app/json ContentType: app/xml

49 ES-LongPoll: 30

50 Client Events Client Any Producer

51 Client Events ua Client Any Producer Nginx nyc Nginx vno

52 { rewritePattern : “/mystuff/{stream}/{event} }

53 Accept security_summary Accept: security_detail Accept: security_raw Events Security Master Security Handler

54 Accept security_summary Accept: security_detail Accept: security_raw Events Security Master Security Handler Accept: security_detail2?

55 Browser Events Browser Validate IndexDb AtomPub

56 Browser Events Browser Validate IndexDb AtomPub

57 Browser Events Browser Validate IndexDb AtomPub

58 Browser Events Browser Validate IndexDb AtomPub

59 Browser Events Validate IndexDb AtomPub

60 Browser Events Validate IndexDb AtomPub

61 A single model cannot be appropriate for reporting, searching, and transactional behaviors…

62 Atom feeds are efficient on a massive scale

63 There is no “best” storage.

64 Event Store is BSD-3 OSS

65 Questions?


Download ppt "Event Store and Web Applications Greg"

Similar presentations


Ads by Google