Commit 8f218c1c authored by Corey O'Connor's avatar Corey O'Connor
Browse files

continue drafting out remaining sections

parent c1a15023
glngn server is a business process as a service rapid development system. The goal is to provide a
tool akin to Microsoft Access or Apple FileMaker (but scalable) for event sourced business
services. In addition to a library, a standalone application is provided that is capable of providing
utility with minimal ceremony. This can be customized with a simple API. As well as deployed to a
kubernetes cluster should those advantages be required.
glngn server is a business process as a service rapid development system. The tool is similar to
Microsoft Access or Apple FileMaker (but scalable) for event sourced business services. In addition
to a library, a standalone application is provided that is useful with minimal ceremony. This can be
customized with a simple API. As well as deployed to a kubernetes cluster should those advantages be
required.
The implementation and APIs should be familiar to Scala service developers. To a large degree, glngn
server is a nice, pre-configured typed akka plus ZIO server.
The implementation and APIs might be familiar to Scala service developers. To a large degree, glngn
server is a friendly, constrained, pre-configured typed akka plus ZIO server.
- both typed akka and zio runtimes are provided. Use whichever suites your domain
- simplified persistence configuration
- plain, typed akka and zio runtimes are provided. Use whichever suites your domain.
- simplified event persistence
- simplified kubernetes cluster deployments. In addition to some custom automation, the akka
management tools are included
- OpenAPI support (provided by tapir)
- OpenAPI support (akka http server with tapir)
- commercial support from the [Dog Head Bone](mailto:support@dogheadbone.com) company
Sound good so far? Cool! Let's start with basic, interactive usage.
Sound good so far? Cool! Let's start with basic, interactive usage of the standalone server.
To start with running a customized server skip to [customization](#customization).
# Standalone
prerequisites: java runtime version 8 or above
The `glngn-server.sh` and `glngn-server-assembly.jar` files can be executed to run a server with a
default configuration. To start with running a customized server skip to [customization](#customization).
default configuration.
## Download
......@@ -100,19 +102,66 @@ Let's query for the (current) API schema to see what else there is:
```bash
$ curl http://localhost:10000/openapi.json
...
{
"openapi" : "3.0.1",
"info" : {
"title" : "dynamic",
"version" : "0.1"
}
[...]
```
### A Brief Tour
(go over the general types of default routes)
- `_ops` routes
### Service Fragments
(instantiate a service fragment)
# Customization
This repository is a series of different customizations.
1. `starter-0` - identical to the default
2. `starter-1` - an additional available service fragment
3. `starter-2` - a default group with a service fragment already instantiated
4. `starter-3` - same as starter-2 but configured for kubernetes deployment
## Minimum build setup
The build setup consists of:
- `project/plugins.sbt`:
~~~
resolvers += Resolver.url(
"glngn server releases",
url("https://glngn-server-releases.s3.amazonaws.com/releases")
)(Resolver.ivyStylePatterns)
addSbtPlugin("glngn" % "sbt-glngn" % "0.3.24")
~~~
- `build.sbt`:
~~~
lazy val `my-customizations` =
glngn.sbt.StarterDeployment(
"my-customizations",
file("my-customizations"),
)
~~~
- `project/build.properties`:
~~~
sbt.version=1.2.8
~~~
# Kubernetes Deployment
We've designed glngn server to be nice to deploy and operate using kubernetes. The priority has been
......@@ -129,3 +178,7 @@ Current features:
Internally, we build containers using nix and deploy to OpenShift. How would you'd like container
builds supported? Let us know at [support@dogheadbone.com](mailto:support@dogheadbone.com)
# References
* for inspiration: https://enroute.osgi.org/tutorial/020-tutorial_qs.html
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment