Closed cortadocodes closed 10 months ago
Attention: 16 lines
in your changes are missing coverage. Please review.
Comparison is base (
19cfd4c
) 95.03% compared to head (1902194
) 94.90%. Report is 1 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Summary
This pull request removes the use of answer topics by publishing answer messages to the service revision (formerly known as question) topic and filtering subscriptions to only receive a) questions or b) response messages to a specific question. This speeds up the question asking process, reduces cloud infrastructure requirements and the permissions surface, and allows us to avoid topic number limits.
Also added is validation of all messages and their attributes against a new publicly available schema. This ensures services are communicating as they should and opens up the possibility of writing services in other languages and creating emulators.
As this, by itself, constitutes an inter-service communication breaking change, we've taken the opportunity to reduce the complexity of the codebase by removing backwards compatibility patches for service communication (i.e. we've grouped multiple breaking changes together into one).
Contents (#603)
IMPORTANT: There are 7 breaking changes.
New features
Enhancements
allow_save_diagnostics_data_on_crash
argument with string/enumsave_diagnostics
argument inService.ask
and related methodsService.answer
kind
field to question messagessender_type
attribute to all messagesRunner
from service/app configurationsFixes
Dependencies
octue
version in template apps' dependenciesRefactoring
Service._send_message
andMockMessage
under explicitattributes
argumentOrderedMessageHandler._waiting_messages
attribute publicTesting
type
field to emulated Pub/Sub questionsOperations
add-issues-to-octue-board
workflowrelease
workflowUpgrade instructions
π₯ Update all Octue services in your network to use this version of
octue
so they're still able to communicate. Postpone upgrading until you can upgrade all services simultaneously.π₯ Replace
allow_save_diagnostics_data_on_crash
withsave_diagnostics
set to one of these values: "SAVE_DIAGNOSTICS_OFF", "SAVE_DIAGNOSTICS_ON_CRASH", or "SAVE_DIAGNOSTICS_ON"π₯ Crash diagnostics rename:
octue get-diagnostics
CLI command instead of theoctue get-crash-diagnostics
commandcrash_diagnostics_cloud_path
in your service configurations todiagnostics_cloud_path