Data movement — what must be decided before data moves
PROPOSAL — generated by StackToIT Assess. Architect review required before any decision.
Run f6267c3f-2848-4aa5-89df-5fee8b15b3b9 · source digest sha256:812c5ae3f6cc8530163abbf5b6fbe305ed3b363c4886ec6b87623db857ea0c70
StackToIT never moves data. 6 stateful source units are listed here: a person must choose a data-movement mechanism for each, and none is chosen (the mechanism is UNKNOWN).
State: DECISION REQUIRED.
Stateful source units
| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| module.dependencies.aws_mq_broker.mq | aws_mq_broker | STACKIT RabbitMQ | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED | |
| module.dependencies.module.catalog_opensearch.aws_opensearch_domain.this | aws_opensearch_domain | STACKIT OpenSearch | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED | |
| module.dependencies.module.catalog_rds.aws_rds_cluster.this | aws_rds_cluster | STACKIT MariaDB | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED | |
| module.dependencies.module.checkout_elasticache_redis.aws_elasticache_replication_group.default | aws_elasticache_replication_group | STACKIT Key Value Store (Valkey) | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED | |
| module.dependencies.module.dynamodb_carts.aws_dynamodb_table.this | aws_dynamodb_table | STACKIT MongoDB Flex (alternative — data-model redesign; PostgreSQL Flex JSONB is the other option) | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED | |
| module.dependencies.module.orders_rds.aws_rds_cluster.this | aws_rds_cluster | STACKIT PostgreSQL Flex | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
What the source and the plans state about each unit
module.dependencies.aws_mq_broker.mq
No mechanism is chosen: a broker holds no dataset the source states, but its definitions (users, exchanges, queues, bindings, policies) and the messages in flight are state that has to move, and what moves them depends on the downtime the business tolerates and on the queue depths, which the source does not state. Candidate method, not chosen and not tried on a STACKIT instance: export the definitions of the Amazon MQ broker (the RabbitMQ definitions export, which lists users, vhosts, queues, exchanges, bindings and runtime parameters, not messages) and import the topology into the STACKIT RabbitMQ instance, stop the producers and drain the queues before the cutover, and point the clients at the new endpoint with new credentials: the draft copies no broker user and writes one stackit_rabbitmq_credential for the instance (a user whose username and password STACKIT generates).
Provisioned capacity: NOT_STATED_IN_SOURCE.
| Facet | State | Detail |
|---|---|---|
| consistency requirements | NOT_ASSESSED | No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person. |
| validation requirement | NOT_ASSESSED | This build does not state how the moved data is validated. |
| cutover dependency | OBSERVED | The unit is in wave 4 of the dependency order. It depends on: module.dependencies.aws_security_group.mq, module.vpc.module.vpc.aws_subnet.private. |
| rollback consideration | NOT_ASSESSED | No rollback consideration is stated by the source or by this build. |
| encryption requirement | NOT_ASSESSED | No in-transit encryption requirement is stated for this unit by the source or by this build. |
Not known:
- The size of the data is not in the source.
- The rate at which the data changes is not in the source.
- The queues, their depths and the messages in flight at the cutover are not in the source.
- The downtime the business tolerates is not provided.
- The recovery point the business requires is not provided.
- The classification of the data is not provided.
module.dependencies.module.catalog_opensearch.aws_opensearch_domain.this
No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.
Provisioned capacity: ebs_options.volume_size = 50 (provisioned capacity, not data size).
| Facet | State | Detail |
|---|---|---|
| consistency requirements | NOT_ASSESSED | No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person. |
| validation requirement | NOT_ASSESSED | This build does not state how the moved data is validated. |
| cutover dependency | OBSERVED | The unit is in wave 4 of the dependency order. It depends on: module.dependencies.aws_security_group.catalog_opensearch_sg, module.vpc.module.vpc.aws_subnet.private. |
| rollback consideration | NOT_ASSESSED | No rollback consideration is stated by the source or by this build. |
| encryption requirement | NOT_ASSESSED | No in-transit encryption requirement is stated for this unit by the source or by this build. |
Not known:
- The size of the data is not in the source.
- The rate at which the data changes is not in the source.
- The downtime the business tolerates is not provided.
- The recovery point the business requires is not provided.
- The classification of the data is not provided.
module.dependencies.module.catalog_rds.aws_rds_cluster.this
No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.
Provisioned capacity: NOT_STATED_IN_SOURCE.
| Facet | State | Detail |
|---|---|---|
| consistency requirements | NOT_ASSESSED | No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person. |
| validation requirement | NOT_ASSESSED | This build does not state how the moved data is validated. |
| cutover dependency | OBSERVED | The unit is in wave 4 of the dependency order. It depends on: module.dependencies.module.catalog_rds.aws_security_group.this, module.vpc.module.vpc.aws_subnet.private. |
| rollback consideration | NOT_ASSESSED | No rollback consideration is stated by the source or by this build. |
| encryption requirement | NOT_ASSESSED | The source does not state tls-enforcement; an absent setting is not read as a requirement. |
Not known:
- The size of the data is not in the source.
- The rate at which the data changes is not in the source.
- The downtime the business tolerates is not provided.
- The recovery point the business requires is not provided.
- The classification of the data is not provided.
module.dependencies.module.checkout_elasticache_redis.aws_elasticache_replication_group.default
No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.
Provisioned capacity: NOT_STATED_IN_SOURCE.
| Facet | State | Detail |
|---|---|---|
| consistency requirements | NOT_ASSESSED | No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person. |
| validation requirement | NOT_ASSESSED | This build does not state how the moved data is validated. |
| cutover dependency | OBSERVED | The unit is in wave 4 of the dependency order. It depends on: module.dependencies.module.checkout_elasticache_redis.module.aws_security_group.aws_security_group.cbd, module.vpc.module.vpc.aws_subnet.private. |
| rollback consideration | NOT_ASSESSED | No rollback consideration is stated by the source or by this build. |
| encryption requirement | OBSERVED | The source states that clients connect without TLS (transit_encryption_enabled = false; finding redis-transit-encryption-off). The STACKIT Key Value Store accepts TLS only: every client changes the scheme (redis:// becomes rediss://), switches its TLS option on and trusts the CA certificate of the instance before the cutover. |
Not known:
- The size of the data is not in the source.
- The rate at which the data changes is not in the source.
- The downtime the business tolerates is not provided.
- The recovery point the business requires is not provided.
- The classification of the data is not provided.
module.dependencies.module.dynamodb_carts.aws_dynamodb_table.this
No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.
Provisioned capacity: NOT_STATED_IN_SOURCE.
| Facet | State | Detail |
|---|---|---|
| consistency requirements | NOT_ASSESSED | No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person. |
| validation requirement | NOT_ASSESSED | This build does not state how the moved data is validated. |
| cutover dependency | OBSERVED | The unit is in wave 1 of the dependency order. It depends on no other unit. |
| rollback consideration | NOT_ASSESSED | No rollback consideration is stated by the source or by this build. |
| encryption requirement | NOT_ASSESSED | No in-transit encryption requirement is stated for this unit by the source or by this build. |
Not known:
- The size of the data is not in the source.
- The rate at which the data changes is not in the source.
- The downtime the business tolerates is not provided.
- The recovery point the business requires is not provided.
- The classification of the data is not provided.
module.dependencies.module.orders_rds.aws_rds_cluster.this
No mechanism is chosen: it depends on the size of the data, the downtime the business tolerates and the consistency the application needs, and the source states none of them.
Provisioned capacity: NOT_STATED_IN_SOURCE.
| Facet | State | Detail |
|---|---|---|
| consistency requirements | NOT_ASSESSED | No consistency requirement is stated by the source or by this build; whether the application tolerates a copy that lags the original is a decision for a person. |
| validation requirement | NOT_ASSESSED | This build does not state how the moved data is validated. |
| cutover dependency | OBSERVED | The unit is in wave 4 of the dependency order. It depends on: module.dependencies.module.orders_rds.aws_security_group.this, module.vpc.module.vpc.aws_subnet.private. |
| rollback consideration | NOT_ASSESSED | No rollback consideration is stated by the source or by this build. |
| encryption requirement | NOT_ASSESSED | The source does not state tls-enforcement; an absent setting is not read as a requirement. |
Not known:
- The size of the data is not in the source.
- The rate at which the data changes is not in the source.
- The downtime the business tolerates is not provided.
- The recovery point the business requires is not provided.
- The classification of the data is not provided.
Limits
- The size of the data, its change rate, the duration of a transfer, the transfer rate and the downtime are never stated: the source does not state them and this build has no way to measure them. A provisioned capacity quoted beside a unit is the size of what was provisioned, not the size of the data.
- No mechanism is chosen and nothing is executed: StackToIT is out of scope for actual data movement, and a mechanism class is a recommendation a person makes from the size, the downtime tolerated and the consistency the application needs.
- A unit is listed when its catalogue kind holds data of its own (a database, a cache, a search domain, a warehouse, a block volume, a file share, an object store). A queue or topic service, and a system installed on a server's disk, are not read as stateful and are not listed. An Amazon MQ broker is listed, because its definitions (users, exchanges, queues, bindings, policies) and the messages in flight are state that moves with the cutover; the method named beside it is a candidate a person chooses, never a method this build chose or ran. A repository of an AWS ECR registry is listed as well, because its images are data that moves to the target registry; a pull-through cache, a registry of another cloud and a registry-level feature are not.
- The data class, RPO and downtime tolerance are the customer's, from the applications file, word for word; without one, or for a unit outside an application, they are NOT_PROVIDED and no default is assumed.