Skip to content

Latest commit

 

History

History
58 lines (38 loc) · 3.09 KB

README.md

File metadata and controls

58 lines (38 loc) · 3.09 KB

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.