Giter Site home page Giter Site logo

elixir-ms's Introduction

Elixir-Logo

elixir-ms

  • elixir microservice base ๐Ÿœโšก
  • microservice skeleton from scratch aka "You dont need Phoenix"

Build Status

Ingredients โญ

  • credo for linting
  • dialyxir static analysis
  • strong http server basis using plug + cowboy
  • fast json encode/decode using poison
  • http client using httpoison
  • metrics using prometheus_ex
  • healthchecks + config setup using mix tools
  • (json) access log provided as Plug
  • ELK compliant logger with simple API
  • registry (in-memory cache) with simple API
  • redis client using redix (pub-sub)
  • JIT Config via weave
  • RDBMS ORM via ecto and postgrex
  • start-up banner
  • MIT License

TODO (coming up)

  • cassandra client to GenServer (Holger)
  • custom dockerfile base on alpine (no deps) (Elmar)

Requirements

  • Erlang/OTP >= 19.3
  • Elixir >= 1.4.1

Installation

  • install Erlang
  • install Elixir
  • install Mix
  • http://elixir-lang.org/install.html#unix-and-unix-like
  • git clone [email protected]:krystianity/elixir-ms.git
  • run mix deps.get or ./tools/get-dependencies.sh
  • start via mix start
  • (if you want to run this as is, you need a local postgres (see Other below) and a redis, otherwise you have to make adjustments to lib/demo.ex and mix.exs)

Use as docker container via docker-compose

build + run via docker-compose up --build

Testing

run mix test

License

MIT

Other

Database Setup

  • (requires a local postgres, with a user named "postgres" and a password "postgres" checkout config/config.exs to change these credentials
  • mix ecto.create
  • mix ecto.migrate

Other Database Stuff

  • mix ecto.gen.migration add_test_table -r ExTest.Repos.Test
  • mix ecto.rollback
  • docker run -it --rm --link postgres:postgres postgres:9.3 psql -h postgres -U postgres ex_test

elixir-ms's People

Contributors

krystianity avatar holgeradam avatar elmarx avatar

Watchers

James Cloos avatar Kamil avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.