:jbake-type: page
:jbake-status: published

= About Tamaya

Apache Tamaya (incubating) provides a *unopinionated and powerful
configuration solution* for developers on the JVM.


== Rationale

Configuration is one of the most prominent cross-cutting concerns similar to logging. Most of us already have been
writing similar code again and again in each of our projects. Sometimes in a similar way but mostly always slightly
different, but certainly with high coupling to your configuration backends. Given your code is reused or integrated
some how, or deployed by some customers, struggling starts: not supported backends, different policies, missing
combination and validation mechanisms and so on. Tamaya solves all this by defining a common API and backend SPI.
Your code is decoupled from the configuration backend. There is no difference if your code is deployed on your dev box
or in a clustered Docker environment in production, it stays the same!


For further information we recommend to have a look at our documentation resources:

* link:features.html[Feature Overview]
* link:documentation/usecases.html[Use Cases and Requirements]
* link:highleveldesign.html[High Level Design]
* link:documentation/api.html[API]
* link:documentation/core.html[Core]
* link:documentation/extensions.html[Extensions]


== You just wanna start right away

So here is five liner to start...

1. Add `{tamaya_mvn_group_id}:tamaya-core:{tamaya_version}` to your dependencies.
2. Add some config to `META-INF/javaconfiguration.properties`
3. Access your configuration by `Configuration.current()` and use it.
4. Look at the link:features.html[extensions modules] to customize your setup!
5. Enjoy!

And, yes, give feedback, so we can improve ;-)




