Skip to content

Use Cases #14

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

Open
benjchristensen opened this issue Mar 18, 2015 · 6 comments
Open

Use Cases #14

benjchristensen opened this issue Mar 18, 2015 · 6 comments

Comments

@benjchristensen
Copy link
Contributor

Documenting use cases.

@benjchristensen
Copy link
Contributor Author

Event processing with enrichment:

  • Persistent connection over TCP
  • milliions of events/second
  • for each event asynchronously fetch data via network to enrich event
  • conditional logic per enriched events
  • write event to event bus
  • separate consumers in JVM process subscribed to the event bus

@benjchristensen
Copy link
Contributor Author

Proxy:

  • request/response using HTTP/1.1, persistent Websockets or HTTP/2 connections with message passing
  • intercept request
    • decorate or enrich
    • authorization and authentication
    • logging
    • metrics
  • conditional routing to backend services over network depending on request
  • route response back
  • intercept response
    • decorate or enrich
    • logging
    • metrics
    • compression

@benjchristensen
Copy link
Contributor Author

Webservice:

  • HTTP/1.1, HTTP/2, Websockets, SSE
  • request/response
  • request/stream
  • message passing
  • intercept
    • metrics
    • logging
    • tracing
    • debugging
    • fault injection
    • caching
    • load shedding

@benjchristensen
Copy link
Contributor Author

Interception:

  • return response from cache instead of normal handler
  • security
  • load shedding
  • tracing, debugging, inspection
  • logging, auditing
  • fault injection
  • compression
  • SSL termination
  • stubbing/mocking

@benjchristensen
Copy link
Contributor Author

Server/Client-as-a-Function:

  • declare a server or client
  • compose new functionality/behavior via interception onto a server or client
  • allow reusable components via composition, interception and layering without tight coupling

@benjchristensen
Copy link
Contributor Author

Connection pooling:

  • ability to inject behavior for pooling of connections
  • pooling implementation should be able to implement whatever load balancing algorithms it wishes
  • feedback loops for metrics and health must be provided to the pool
  • control of connection establishment and tear down must be available to the pool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant