Skip to content

Instantly share code, notes, and snippets.

@AntonStoeckl
Created May 20, 2022 11:05
Show Gist options
  • Save AntonStoeckl/57f986089192980fb07b0141fcf966f4 to your computer and use it in GitHub Desktop.
Save AntonStoeckl/57f986089192980fb07b0141fcf966f4 to your computer and use it in GitHub Desktop.
Example for Blog Post "Hexagonal Architecture: Structuring a project and the influence of granularity"
type ForCreatingEventStreams interface {
Create(streamID lib.StreamID, event lib.Event) error
}
type ForAppendingEventsToStreams interface {
Append(
streamID lib.StreamID,
expectedRevision uint64,
recordedEvents ...lib.Event,
) error
}
type ForReadingEventStreams interface {
Read(streamID lib.StreamID) (lib.EventStream, error)
}
type ForReadingActivePlayersProjections interface {
Read() (game.ActivePlayersView, error)
}
type ForReadingDeckSets interface {
Read() (game.DeckSet, error)
}
type ForReadingLeaderboardProjections interface {
Read() (game.LeaderboardView, error)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment