Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- name: auth-service
- type: service # by default 1 instance, permanent
- deployment:
- image: repo/auth-service:latest
- handlers: # или все-таки triggers
- - request: POST /api/v1/auth
- handler: web # pass as web request
- - request: POST /api/b1/auth
- handler: authHandler
- dependencies:
- - user-storage
- ---
- name: user-storage
- type: storageController # idk if it is a good solution, because then you cannot use SQL in auth-service, for example. Maybe better define there just config (sth like storageConfig) of DB to inject it into dependant services
- deployment:
- instances: 1
- config:
- driver: postgres
- url: user-db:5432
- ---
- name: email-task
- type: task
- deployment:
- image: repo/email-task:latest
- instances: 1-10
- max-concurrency: 10 # max concurrent tasks per instance
- triggers:
- - type: http-request
- request: POST /api/v1/email
- handler: emailWebSender # handle web requests
- max-concurrency: 5 # this value is more important, max concurrent executions for handler
- - type: message
- message: send_email # topic of message, or maybe better message.topic:
- if: ${ event.message.body != null }
- handler: emailKafkaSender # handle Kafka messages (or RabbitMQ, idk)
- - type: send_email # Maybe it would be better to handle Kafka messages like this, or to use both ways. This way allows to create custom triggers
- if: ${ event.body != null }
- handler: emailEventListener
- ---
- name: auditor
- type: service
- deployment:
- image: repo/auditor:latest
- instances: 1-3
- triggers:
- - type: cron
- cron: 0 0 * * * *
- max-concurrency: 1
- handler: startAudit
- - type: price-changed
- dependencies:
- - user-storage
- - log-storage
- - some-other-storage
- ---
- name: websiteCrawler
- type: eventSource
- deployment:
- image: repo/site-crawler
- instances: 1
- produces:
- - price-changed
- ---
- name: repoWatcher
- type: repoWatcher
- # No deployment settings required by default because of type
- config:
- url: ${GIT_URL}
- username: ${GIT_USERNAME} # not required for public repos
- password: ${GIT_PASSWORD} # or maybe token
- ---
- name: CI/CD
- type: task
- deployment:
Advertisement
Add Comment
Please, Sign In to add comment