Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bio4j + Statika: Managing module dependencies on the type level

Bio4j + Statika: Managing module dependencies on the type level

Bio4j bioinformatics graph database is modular and customizable, allowing you to import just the data you are interested in. There exist, though, dependencies among these resources that must be taken into account and that's where Statika enters the picture; a set of Scala libraries which allows you to declare dependencies between components of any modular system and track their correctness using Scala type system. Thanks to this, it's possible now to deploy only selected components of the integrated data sets, with Amazon Web Services deployments on hardware specifically configured for them.

These are the slides of the talk, given by Alexey Alekhin at FOSDEM 2014:
https://fosdem.org/2014/schedule/event/graphdevroom_bio4j_1/

oh no sequences!

February 02, 2014
Tweet

More Decks by oh no sequences!

Other Decks in Programming

Transcript

  1. ABSTRACT MODULE SYSTEM Modules as Scala types — bundles They

    can depend on each other! It’s validated by compiler — i.e. statically Linearizing types graph to get them in the right order
  2. MANAGING ARTIFACTS Packing bundles into versioned artifacts (jars) Reusing (Simple

    Build Tool) infrastructure Standardizing settings and release process with the SBT sbt-statika plugin
  3. DEPLOYMENT + Amazon Web Services aws-statika lib Bundles can be

    applied, i.e. deployed it to an EC2 instance Statika distributions — an abstraction for the cloud infrastructure specifics
  4. INCREMENTAL IMPORT Incremental import of data to existing Bio4j distributions

    Not repeating already done work Easy to describe abstractly
  5. CUSTOM RELEASE OF BIO4J create a release-bundle with needed modules

    be sure not to spend resources on a wrong configuration — compile it! use tools for easy release and deployment: + sbt-statika statika-cli
  6. BIO4J + STATIKA = WIN! Abstract layout of bundles Hierarchy

    of concrete modules Tracking deps on all levels Doing it at compile time Using AWS cloud infrastructure for the actual work