Skip to content

Bauhaus is an opinionated set of foundational modules to optimize DevOps experience with Clojure-based services.

Notifications You must be signed in to change notification settings

gorillalabs/bauhaus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bauhaus

Bauhaus is an opinionated set of foundational modules to optimize DevOps experience with Clojure-based services.

Overall design

We explain our goals and design choices in the Design Choices document.

Bauhaus is a set of modules that are designed to be used together. The modules are designed to be used with Integrant, but can be used without it.

It is the distillation of the experience of running Clojure services in production in several different organizations.

Usage

There is an example application showing usage in applications/example and an example http service showing more elaborate usage in application/example-http-service.

See Documentation: Intro for a more detailed introduction utilizing the two example applications.

And while we keep bauhaus in a monorepo, this does not mean that you have to follow our path here. You can use the modules independently, even within your git-based deps.edn dependencies.

{:deps {...
        org.gorillalabs.bauhaus/setup-logging {:git/url   "git@github.com:gorillalabs/bauhaus.git"
                                               :git/sha   "AE...<commit sha>" ;; see https://github.com/gorillalabs/bauhaus/commits/main/
                                               :deps/root "modules/setup/logging"}
        ...
        }}

Modules

Setup

Module Path Description
Logging modules/setup/logging setup proper logging infrastructure, fighting the JVM logging chaos.
Shutdown modules/setup/shutdown provide ordered shutdown hooks as proposed in Killing me softly: Graceful shutdowns in Clojure
CLI modules/setup/cli setup a CLI for your application.

Dev-Tooling

Module Path Description
Config modules/dev-tooling/config Handle development config and ease Integrant REPL integration.
Build modules/dev-tooling/build Support building your app.

Clojure Contrib

Module Path Description
Collection modules/clojure-contrib/collection Collection utilities.

About

Bauhaus is an opinionated set of foundational modules to optimize DevOps experience with Clojure-based services.

Resources

Stars

Watchers

Forks

Packages

No packages published