Skip to content
Hydra is a full-fledged framework for building web services, multithreaded and concurrent applications with SQL and KV DB support.
Haskell
Branch: master
Clone or download
Latest commit 2a70cec Dec 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
catalogue
src
test/spec
.ghci
.gitignore
LICENSE
Notes.md
README.md
Setup.hs
meteor_counter.cfg
package.yaml
perf_test_app.cfg
stack.yaml
test.db

README.md

Hydra Framework

An all-in-one framework for writing Haskell apps which use the following features out of the box:

  • Multithreading
  • Safe STM-powered concurrency
  • KV DB functionality (Redis & RocksDB backends supported)
  • SQL DB functionality (beam incorporated, SQLite supported, PG & MySQL possible)
  • Logging
  • Random data generation
  • Many others

With the framework, you can create complex applications that have a good maintainability, testability, simplicity, that have a good structure and are easy to read and change. The key principles in the framework:

  • Layered architecture
  • Separation of Subsystem Interfaces, Business Logic, Runtime and Implementation
  • Convenient and simple to use eDSLs for Business Logic
  • Layered structure of business application: State, Domain, Business Logic

The Hydra Project

This project demonstrates the principles of Software Design and Architecture in pure Functional Programming. It provides a framework implemented with several different approaches for easy comparison:

  • Final Tagless
  • Free Monad
  • Church Encoded Free Monad

The project is a showcase for my book Functional Design and Architecture

Additional materials describing these ideas:

You can’t perform that action at this time.