Created
October 5, 2016 20:42
-
-
Save aslakknutsen/703fa3336c96fbfcaaf357c01e72d1ad to your computer and use it in GitHub Desktop.
almighty tech overview
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
type CoreService interface { | |
} | |
func (c CoreService) RegisterService(service Service) { | |
// RegisterWorKitems | |
// Add to Service Register | |
} | |
func (c CoreService) RegisterIntegrationService(service Service) { | |
// Register auto activation on enabled service | |
} | |
// GiveMeEnabledServicesFor UI support for dynamically loading | |
func (c CoreService) GiveMeEnabledServicesFor(project string) []Service { | |
} | |
Repo(GitHub) -> WebHook Push -> CodeHostingService -> Commit(branch/repo) -> BuildCodeHostingIntegrationService -> BuildRequest -> BuildService -> |SPI| -> |provider| OpenShift Pipeline | |
WIT Core bus WIT Core bus | |
Build(state active) <- <- <- | |
BuildArtifact | |
BuildTestArtifact | |
* <- WIT Core bus | |
func StartCore() { | |
BuildService{}.Register(this) | |
StartAndListen() // live | |
} | |
1. BuildService start (connect to bus, expose APIs, register your self in service registry) | |
2. ServiceRegistry register | |
2.1. WorkItemService register Types | |
2.2. API Gateway expose, network breaker | |
x. ServiceRegistry deregister (soft) | |
4. User enables build on Project | |
5. ServiceRegister lookup UI | |
type Service interface {} | |
type IntegrationService interface {} | |
func BuildMain() { | |
CoreClient.RegisterService(Builderivce{}) | |
StartandListen() | |
} | |
type BuildService struct { | |
// Backend | |
WorkItemTypes []WorkItemType{ | |
WorkItemType{Name: "BuildRequest"}, | |
WorkItemType{Name: "BuildResult"}, | |
} | |
ExposedAPI ExposedAPI{JSONSchema: "https://buildservice.something/schema", EndpointURL: net.URL} | |
ExposedSPI ExposedSPI{JSONSchema: "https://buildservice.something/spi/schema", EndpointURL: net.URL} | |
// Frontend | |
UIExtensionBundle net.URL | |
} | |
type PlannerService struct { | |
WorkItemTypes []WorkItemType{ | |
WorkItemType{Name: "Experience"}, | |
WorkItemType{Name: "Feature"}, | |
} | |
} | |
type BuildPlannerIntegrationService struct { | |
FromSerivce PlannerService | |
ToSerivce BuildService | |
} | |
type WorkItemType struct { | |
Name string | |
} | |
type ExposedAPI struct { | |
JSONSchema string | |
} | |
type Action struct { | |
Name string | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment