-
Notifications
You must be signed in to change notification settings - Fork 7
ING-1216: Add tuneable documentation and basic project docs structure. #282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
| @@ -0,0 +1,74 @@ | |||
| # Documentation | |||
|
|
|||
| Documentation here is a developer level view of concepts and how the system is implemented. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sentence starts a bit strange, missing a "The" perhaps?
|
|
||
| ## Concepts | ||
|
|
||
| **Stellar Gateway** is a Couchbase Protostellar implementation that provides both a gRPC "protostellar" and a RESTful interface to Couchbase. It is deployed 1:1 with a cluster, but may be deployed different ways. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stellar Gateway is a service that provides both a gRPC "protostellar" implementation and a RESTful interface to Couchbase.
|
|
||
| ### Architecture Overview | ||
|
|
||
| The system uses a modular architecture where each service (data, service discovery, Data API) can be independently configured and scaled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sentence is a slightly confusing statement, it seems to be mixing the concept of scalability of the cluster with the scalability of CNG itself.
| The system uses a modular architecture where each service (data, service discovery, Data API) can be independently configured and scaled. | ||
|
|
||
| ### Main Entry Points | ||
| - **`cmd/gateway/main.go`** - Main gateway service entry point with CLI interface |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should be limited to just cmd/gateway/main.go, the other 2 are likely to be eventually removed (they are not maintained anymore).
| #### **Gateway Core (`gateway/`)** | ||
| - **`gateway.go`** - Main Gateway struct and orchestration logic | ||
| - **`system/`** - System-level server management (gRPC, HTTP, Data API servers) | ||
| - **`clustering/`** - Cluster membership and service discovery |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While "cluster membership and service discovery" is what this folder does, this statement is a bit confusing without mentioning the distinction between CNG service discovery and cluster service discovery. This particular folder may also be deprecated in the future, since we don't currently have a fully implemented implementation of CNG service discovery.
| #### **Infrastructure Modules** | ||
| - **`auth/`** - Authentication (cbauth integration) | ||
| - **`ratelimiting/`** - Request rate limiting | ||
| - **`hooks/`** - Lifecycle hooks and barriers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The hooks library enables hooking the GRPC implementation in various ways for testing. It's "testing hooks" rather than "lifecycle hooks".
Added some basics on the rate limiting tuneable, will crossref the runbook as well.