Commit 63d96f2a authored by Corey O'Connor's avatar Corey O'Connor
Browse files

readme tweaks

parent 7cf183c0
glngn server is an extensible business process application server. Similar to
Microsoft Access or Apple FileMaker, but designed for event sourced business services with a code-first philosophy.
A standalone application with an approachable extension SDK is provided.
Applications developed with glngn server can be easily deployed to a kubernetes cluster for sharing.
A standalone application and an approachable SDK is provided. Applications developed with glngn
server can be easily deployed to a kubernetes cluster.
- Support available from the [DogHeadBone LLC](mailto:support@dogheadbone.com) company
- Useful built-in services
......@@ -17,7 +17,7 @@ Sound good so far? Excellent! Let's start with basic, interactive usage of the s
# Developer Guide
This document is focused on usage and not extension of the application. Developers should read:
For usage of the SDK see:
- [development guide](docs/Customization.md)
- [development error help](docs/CompileErrorHelp.md)
......@@ -26,9 +26,9 @@ The implementation and extension API is familiar to Scala service developers. To
glngn server is a friendly, constrained, pre-configured typed akka plus ZIO server. A few of the
niceties included:
- Cluster is enabled and established without additional configuration.
- Logging and data marshalling are configured appropriately.
- Additional error tracking and handling.
- Clustering is enabled and established without additional configuration
- Logging and data marshalling are configured appropriately
- Additional error tracking and handling
# Standalone Application
......@@ -338,7 +338,7 @@ Which replies with the new set of services under that group. This reply states t
is a composition of a list of service fragments. Which only contains
`glngn.server.services.IntegerCounters$` in this example.
See [docs/Deep Dives](https://gitlab.com/glngn/glngn-server-examples/blob/master/docs/DeepDives.md) for
See [docs/Deep Dives](https://gitlab.com/glngn/glngn-server-examples/blob/master/docs/DeepDives.md) for
details.
#### Use a Service
......@@ -348,7 +348,7 @@ for the `/accounts/retail` service:
##### The Extended OpenAPI Schema
With this fragment instantiated under `/accounts/retail` the service's routes are now visible in the
With this fragment instantiated under `/accounts/retail` the service's routes are now visible in the
OpenAPI schema:
~~~
......@@ -394,13 +394,13 @@ $ curl localhost:10000/openapi.json
An `Entity ID` is a common path component and identifier in glngn server. All `Entity ID`s are:
- case insensitive
- case insensitive
- case preserving
- consist only of characters in `[a-zA-Z0-9\\-_]`: Upper or lower case letters, numbers, '-' and '_'.
- all invalid characters are filtered if provided for an Entity ID
- no longer than 28 characters
Adding new service fragments using the glngn server with the [Developer SDK](docs/Customization.md)
Adding new service fragments using the glngn server with the [Developer SDK](docs/Customization.md)
can be used to constrain the domain of identifiers.
##### Get a Counter
......@@ -439,11 +439,11 @@ $ curl localhost:10000/accounts/retail/central-store
##### Events Persist
If the glngn server application was to be restarted then this data would persist. If the counter
was queried after restart the value would be the same as before.
was queried after restart the value would be the same as before.
The server is persisting all events that modified that counter. Each of those `inc` and `dec`
The server is persisting all events that modified that counter. Each of those `inc` and `dec`
used to change a counter is saved. This history is essential to "event sourcing". Having a
history, not only the current state, of a service enables a new level of analysis of your
history, not only the current state, of a service enables a new level of analysis of your
business activity.
The standalone version persists to the directory provided to the `--state` command line argument.
......@@ -452,7 +452,7 @@ or Cassandra.
#### Capturing Events
If we have a model of our business events we can build and instantiate service fragments that
If we have a model of our business events we can build and instantiate service fragments that
reflect that model. What do we do if we don't have a model of our business events? These unknowns are likely
in a number of situations: New business proposals; exceptional business events; unexpected issues. These
will not have a schema or service structure a-priori. This is why glngn server supports arbitrary
......@@ -494,5 +494,3 @@ Each request has an event history.
TODO:
1. demo querying request history
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