Skip to content

Conversation

solsson
Copy link
Contributor

@solsson solsson commented Mar 25, 2019

Let's explore how/if we can simplify the design when only scoping in use as a sidecar. One major difference is that we don't need to send "onupdate" to multiple replicas of dependent services.

Design:

  • Group id is per pod, i.e. namespace + hostname
  • We use the last committed offset to denote the last onupdate that completed successfully, so in case the cache restarts we don't miss any updates (previous strategy was to update for "new" records, i.e. based on timestamp of cache startup).
  • Onupdate http is on localhost, so success/failure should be more clear than with arbitrary targets.

Questions:

  • How do we deal with readiness? The dependent container shouldn't read from the cache until it is warmed, i.e. consumed to some notion of latest offset.
  • Kubernetes readiness affects the outside view, so should we just respond 503 on all endpoints, ar maybe delay/abort/refuse requests?
  • Should the dependent container respond to onupdate requests? Or is there a mode where failed onupdate from the cache is expected until the dependent container is deemed ready.

solsson added 30 commits March 23, 2019 13:32
./mvnw package -Pnative -Dnative-image.docker-build=true
with zstd-jni 1.3.8-1 in case anyone's interested
There's a MicroConfig readiness concept that I didn't have time to investigate
solsson added 26 commits May 28, 2019 14:02
ConsumerAtLeastOnceIntegrationTest.testTopicNonexistent » Timeout Timeout expi...
for example application:se_yolean_kafka_keyvalue_consumer_at_least_once_
so we don't need to add any context to names
so client app can fetch state prior to becoming ready to receive updates

Also make error logging a bit more bearable.
…ssions

Snappy in this case, and possibly z-standard
the wrapper script. Java 11 should be container friendly by default.
mechanism for setting arbitrary kafka props.
This one we'll likely want to change on a per use-case basis.
whenever there's metrics annotations
@solsson
Copy link
Contributor Author

solsson commented Jun 4, 2019

Scoped out metrics in 42d19b5. I might try to revert that once Quarkus has upgraded to Graal 19.

@solsson
Copy link
Contributor Author

solsson commented Jun 4, 2019

There was a kafka client upgrade in master that we've never used and never will use so I force pushed to avoid the conflict.

@solsson solsson merged commit ba9dc6b into master Jun 4, 2019
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

Successfully merging this pull request may close these issues.

1 participant