Real World Applications/Event Driven Applications

From HaskellWiki
< Real World Applications
Revision as of 11:24, 2 July 2014 by Mbrodersen (talk | contribs) (Initial layout)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

An event driven application is an application that reacts to external events.

Examples would be:

  • A text editor that reacts to user events (key pressed, mouse moved).
  • A web server reacting to IO events (message arrived, image compression done).
  • A commercial game reacting to simulated physics events and user input.

In the following, I will show one way to architecture a Haskell application so that it can scale from small "toy" applications to large scale "Enterprise" applications.

Please note that this is not the only way to attack the problem. So please contribute your (clearly superior) alternative way of doing it here: X

What is an Event?

In the following, I define an "Event" as a value describing something that has happened in the past. And yes this should really be called an "Event Notification" but life is too short :)

Examples:

  • A user pressed a button.
  • A HTML message arrived.
  • A file finished loading.
  • A new customer has been created.
  • An intruder has been detected.

Events in Haskell

Main

Growing the Application

  • Crash Recovery
  • Undo/Redo
  • Time
  • UI
  • Databases
  • Client/Server

Your Contribution Here

Please contribute additional/alternative ways to structure large scale Haskell applications here.

Questions and feedback

If you have any questions or suggestions, feel free to mail me.