SAFE: Sonian Archive File Engine

  • indexes incoming emails for search
  • application, library, framework -> foundation

New service, old problems

  • deploy
  • configure
  • debug
  • flexible

  • how do I run code on startup?
  • how do I run periodic tasks?
  • how do I give it commands?
  • how do I distribute work over multiple instances?


  • finds configuration on the classpath
  • exposes values via config method - e.g. (config :core :app)
  • open sourced as carica


  • startup doinit
  • shutdown dofini
  • deftick and deftock for hourly tasks
  • dostatus for reporting health status
  • defadmins for running commands - vai safectl
  • open sourced as carousel


  • defined by defadmin
  • used to interact with the services e.g.
    • safectl status
    • safectl util repl
    • safectl imports emls –account 43 –url s3://walrus/bucket.eml