We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
ElixirConf 2023 - Tyler Young - Rebuilding the Plane While It’s Still Flying
Rebuilding a legacy system while minimizing downtime and data loss, Tyler Young shares practical lessons learned from his experience in adding new features to mature applications.
- Sometimes a feature needs to be added to a legacy system, and this can be challenging.
- It’s better to understand why a rule exists before ignoring it.
- When introducing a new feature, be prepared for issues and have a plan to address them.
- In rebuilding the plane, keep the IDs the same to maintain data consistency.
- It’s okay to have a little downtime during the process.
- Use a map to provide context and make it easier to understand.
- It’s not ideal to have multiple layers, but it can be lived with.
- The scheme of migrations is important.
- Indicator fields are necessary to understand the data migration process.
- When migrating data, it’s good to have a way to reference old and new data structure.
- It’s not hard to undo a migration, but it has to be done carefully.
- Communities of Practice are important for sharing knowledge.
- Lean on safe ectomigrations and excellent migrations to make the process easier.
- The worst case is that a migration runs slowly and has errors.
- Downtime can be a band-aid over not being able to make a migration atomic.
- It’s good to have a way to add more context to a map.
- Working on a feature while trying to fix bugs is challenging.
- Don’t reintegrate old data structure into the new one.
- It’s better to make small changes and test them than to make a big change and hope it works.
- It’s good to have a plan for what to do when something goes wrong.
- Communities of Practice are important for learning from others.
- Keep the IDs the same to maintain data consistency.
- It’s not hard to undo a migration, but it has to be done carefully.
- Downtime can be a band-aid over not being able to make a migration atomic.
- Don’t reintegrate old data structure into the new one.
- It’s better to make small changes and test them than to make a big change and hope it works.