Slide 1

Slide 1 text

BIO4J + STATIKA ALEXEY ALEKHIN GRAPH DEVROOM @ FOSDEM 2014

Slide 2

Slide 2 text

BIO4J MODULES

Slide 3

Slide 3 text

BIO4J DATA SOURCES

Slide 4

Slide 4 text

BIO4J MODULES HIERARCHY

Slide 5

Slide 5 text

BIO4J CUSTOM RELEASES

Slide 6

Slide 6 text

BIO4J CUSTOM RELEASES

Slide 7

Slide 7 text

GOALS Flexible module system Simple import process Dependencies management Easy and robust deployment

Slide 8

Slide 8 text

STATIKA

Slide 9

Slide 9 text

WHAT IS STATIKA

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

MANAGING ARTIFACTS Packing bundles into versioned artifacts (jars) Reusing (Simple Build Tool) infrastructure Standardizing settings and release process with the SBT sbt-statika plugin

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

BIO4J + STATIKA

Slide 14

Slide 14 text

DEFINING BIO4J MODULES Raw data Node/relations type defs Importing process Exposing some API

Slide 15

Slide 15 text

INNER BUNDLES LAYOUT

Slide 16

Slide 16 text

INNER BUNDLES LAYOUT EXAMPLE

Slide 17

Slide 17 text

INCREMENTAL IMPORT Incremental import of data to existing Bio4j distributions Not repeating already done work Easy to describe abstractly

Slide 18

Slide 18 text

INCREMENTAL IMPORT EXAMPLE

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

SUMMARY

Slide 21

Slide 21 text

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