Skip to content

Zooming based organizer, storing data as events, designed for web platform

License

Notifications You must be signed in to change notification settings

Auginte/event-sourced-notepad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auginte event sourced

This is one of augitne tools.

Next step for personal knowledge management tool is collaboration. This project was created to address 2 main functions:

  • It should be easy for others to read and update common data
  • It should be easy to view history of changes or undu latest changes

Run during development

sbt "~auginteEventSourcedJS/fastOptJS"
sbt "~auginteEventSourcedJVM/re-start"

Deploy

sbt "auginteEventSourcedJS/fullOptJS"
sbt "auginteEventSourcedJVM/pack"
java -cp "$SOFTWARE_PATH/pack/lib/*" \
  -Dauginte.host=0.0.0.0 \
  -Dauginte.port=8111 \
  -Dauginte.storage.path=data \
  -Dauginte.compiledJs.path=js \
  -Dauginte.compiledJs.name=auginte-event-sourced-opt.js \
  -Dauginte.compiledCss.path=css \
  com.auginte.eventsourced.Main

Architectural decisions

  • Event sourcing

    • Covers history and undo functionality
    • Immutable messages integrates nicely in distributed environment
  • Separate write and (delayed) read

    • Client updates own state temporary, does not wait for server response - can work offline
    • Listens acknowledge/udpated state from server - guaranteed stored and consistency
    • Storage/view sepations does not block user interface - beter user experience
  • Real time changes from other clients (send first, store later)

    • Makes user interface more usable when collaborating
    • Server overwrites with consistent state - errors could be corrected from histroy later
  • Client is responsible for resending messages:

    • Covers all cases and simplifies whole architecture
    • Integrates nicely with web-offline usage

Development tips

To test via local network, Set server arguments in sbt interactive mode:

set javaOptions += "-Dauginte.host=192.168.0.123"

Known issues

  • sbt.version=0.13.12 throws deprecation warnings

License

Apache 2.0

Author

Aurelijus Banelis https://auginte.com

About

Zooming based organizer, storing data as events, designed for web platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published