Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Microservices
  3. Tesla

Tesla

Apache-2.0Clojure

A Clojure microservice foundation with component lifecycle management, configuration, health checks, and scheduling.

GitHubGitHub
195 stars24 forks0 contributors

What is Tesla?

tesla-microservice is a Clojure library that serves as a common foundation for building microservices, leveraging the component framework for lifecycle management. It handles configuration loading, health checks, task scheduling, metrics reporting, and graceful shutdown, reducing boilerplate for service developers. The project originated at otto.de to standardize microservice development across teams.

Target Audience

Clojure developers and teams building microservices who need a structured, reusable foundation with built-in operational features like configuration, health checks, and metrics.

Value Proposition

Developers choose tesla-microservice for its minimal, composable design that integrates seamlessly with the component framework, offering essential microservice capabilities without locking them into a specific server or heavy framework. Its extensibility via add-ons and support for multiple servers (Jetty, HTTP Kit) provides flexibility.

Overview

Common basis for some of otto.de's clojure microservices

Use Cases

Best For

  • Building Clojure microservices with structured lifecycle management
  • Standardizing configuration and health checks across multiple services
  • Adding scheduled background tasks to microservices
  • Integrating metrics reporting (Graphite/Prometheus) into services
  • Developing services that require graceful shutdown for load balancer awareness
  • Creating services with hot-reloading capabilities for development

Not Ideal For

  • Teams wanting an all-in-one framework with built-in HTTP server and database connections out of the box
  • Projects not already using or familiar with the Clojure component pattern for dependency injection
  • Environments where dependency stability is critical and breaking changes are unacceptable
  • Rapid prototyping requiring zero-configuration setup without additional add-ons or libraries

Pros & Cons

Pros

Minimalist and Composable

Emphasizes a stripped-down basis that can be extended with add-ons, allowing developers to choose only necessary components, as stated in the project philosophy, reducing bloat.

Flexible Server Choice

No server included by default, enabling use of Jetty, HTTP Kit, or no server via separate add-ons, providing freedom for embedded or non-blocking setups without vendor lock-in.

Operational Features Included

Built-in support for configuration management, health checks, task scheduling, and metrics reporting reduces boilerplate, with examples for Graphite and Prometheus integration in the README.

Development and Production Ready

Supports hot-reloading during development and graceful shutdown for production, enhancing developer productivity and operational reliability with load balancer awareness.

Cons

Breaking Changes Risk

The README explicitly notes it's a work in progress with breaking changes documented in CHANGES.md, leading to potential instability and maintenance overhead.

Additional Setup Complexity

Essential features like HTTP servers require separate add-ons (e.g., tesla-jetty), increasing initial configuration effort compared to integrated frameworks.

Configuration Nuances

Configuration handling has complexities, such as ENV variables not being merged directly in EDN files and differences with properties files, which can confuse new users.

Limited Ecosystem

While extensible via add-ons, the ecosystem is smaller with fewer pre-built integrations compared to alternatives like Duct, potentially requiring custom solutions.

Frequently Asked Questions

Quick Stats

Stars195
Forks24
Contributors0
Open Issues2
Last commit11 months ago
CreatedSince 2015

Tags

#graceful-shutdown#health-checks#component-framework#clojure#microservices#configuration-management#scheduling#metrics

Built With

C
Clojure
c
component
P
Prometheus
G
Graphite
r
ring

Included in

Microservices14.2k
Auto-fetched 19 hours ago

Related Projects

CompojureCompojure

A concise routing library for Ring/Clojure

Stars4,114
Forks259
Last commit10 months ago
SystemSystem

Reloaded components à la carte

Stars607
Forks78
Last commit11 months ago
DuctDuct

A server-side framework for Clojure

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub