Skip to content
This repository has been archived by the owner on Apr 30, 2022. It is now read-only.
/ dodecagon Public archive

Clojure Hexagonal Architecture Example

Notifications You must be signed in to change notification settings

evaporei/dodecagon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dodecagon

Clojure Hexagonal Architecture Example.

To Do

  • Basic components/system setup
  • Functions to start/stop/restart system
  • Pedestal interceptor to add components in request
  • Dev/test system
  • Create test structure
  • Parse request body
  • schema route validation (dev)
  • InMemory storage
  • Database layer
  • Controller layer
  • Adapter layer
  • Logic layer

Getting Started

  1. Start the application: lein run
  2. Go to localhost:8080 to see: Hello World!
  3. Read your app's source code at src/dodecagon/service.clj. Explore the docs of functions that define routes and responses.
  4. Run your app's tests with lein test. Read the tests at test/dodecagon/service_test.clj.
  5. Learn more! See the Links section below.

Configuration

To configure logging see config/logback.xml. By default, the app logs to stdout and logs/. To learn more about configuring Logback, read its documentation.

Developing your service

  1. Start a new REPL: lein repl
  2. Start your service in dev-mode: (def dev-serv (run-dev))
  3. Connect your editor to the running REPL session. Re-evaluated code will be seen immediately in the service.

Docker container support

  1. Configure your service to accept incoming connections (edit service.clj and add ::http/host "0.0.0.0" )
  2. Build an uberjar of your service: lein uberjar
  3. Build a Docker image: sudo docker build -t dodecagon .
  4. Run your Docker image: docker run -p 8080:8080 dodecagon

OSv unikernel support with Capstan

  1. Build and run your image: capstan run -f "8080:8080"

Once the image it built, it's cached. To delete the image and build a new one:

  1. capstan rmi dodecagon; capstan build

Links

About

Clojure Hexagonal Architecture Example

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published