# Expert Tips for a Successful Microservices Transition

Last week we explored the differences between [monolithic and microservices architecture](https://flight.beehiiv.net/v2/clicks/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJodHRwczovL3d3dy5saW5rZWRpbi5jb20vZmVlZC91cGRhdGUvdXJuOmxpOmFjdGl2aXR5OjcwNzI1NjIyMzEzODg4NzY4MDAvIiwicG9zdF9pZCI6ImMxNzhhNTFmLWM3ODktNDMzYi04MThkLWY3ZGE3MmExMTBmNiIsInB1YmxpY2F0aW9uX2lkIjoiNmQyZWI0MzItYTc0ZS00NjE3LTgwNzItMzMzYTk3YzdhYjliIiwidmlzaXRfdG9rZW4iOiJlNjg1ZTQ0MS0yNjA4LTQ0YTQtODIyNy00Mjk3ZWY2NDBlNWQiLCJpYXQiOjE3MDI5OTI4NTksImlzcyI6Im9yY2hpZCJ9.T-xJxqhxdyGZ-LWQWO_Fa2xcddEs0l31bRCuwMlqc5o).

It opened up one very important point:

***Solutions should be designed based on what the system needs right now; as the system evolves, so should your solution.***

This is why it’s very common for systems to start off as a monolith, and then break out into microservices in the future.

To wrap up this discussion, let's look at the **best practices** that'll make going **from monolithic to microservices** a smoother process:

### 1\. Define your system’s boundaries

Start by listing the **different capabilities and business domains** in your system.

Once that’s done, **identify the boundaries** of each.

This will help guide the transition and ensure your microservices architecture stays loosely coupled.

### 2\. Have a plan

Before you start breaking up your monolith, make sure you have planned out your **strategy from start to finish**.

Incorporate **DevOps practices** to ensure development and deployment are streamlined, and the system stays resilient.

### 3\. Start small

Start with the lowest-hanging fruit.

This will help you **quickly test and refine your approach** with less complex services.

Which will save you from a lot of headaches once you tackle those large and heavily intertwined services.

### 4\. Build in resilience

With a change as big as this one, you can expect something to go wrong.

As you’re splitting out the services, **make sure you’re adding mechanisms that help the system handle failure**.

Such as redundancy, rate limiting, and health checks.

### 5\. Add logs and alerts

It’s always a good idea to test your changes.

But when your changes are so far-reaching, it’s almost impossible to test for every scenario and edge case.

This is why logs and alerts are so important.

It helps you **quickly identify, debug, and fix problems**.

Sometimes, before your end-users even notice it!

———

Large system changes can be very daunting.

But you can save yourself from a lot of headaches by learning from others; which is where best practices can come in handy.

# Components of a URL

![](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/cb12d467-7f2d-4398-aaae-75a35301d5cb/IMG_2683.jpg align="left")

# SQL Number Functions

![](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/5eea6e5a-52c4-47eb-8a48-cd2e42161cc9/IMG_2682.jpg align="left")

See the full post: [*Click here*](https://flight.beehiiv.net/v2/clicks/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1cmwiOiJodHRwczovL3d3dy5saW5rZWRpbi5jb20vcG9zdHMvbmljb2xlc2lhcG5vX3NvZnR3YXJlZW5naW5lZXJpbmctd2ViZGV2ZWxvcG1lbnQtc3FsLWFjdGl2aXR5LTcwNzIxMDI5NTEyMDAxMTI2NDAtU0FGND91dG1fc291cmNlPXNoYXJlJnV0bV9tZWRpdW09bWVtYmVyX2Rlc2t0b3AiLCJwb3N0X2lkIjoiYzE3OGE1MWYtYzc4OS00MzNiLTgxOGQtZjdkYTcyYTExMGY2IiwicHVibGljYXRpb25faWQiOiI2ZDJlYjQzMi1hNzRlLTQ2MTctODA3Mi0zMzNhOTdjN2FiOWIiLCJ2aXNpdF90b2tlbiI6ImU2ODVlNDQxLTI2MDgtNDRhNC04MjI3LTQyOTdlZjY0MGU1ZCIsImlhdCI6MTcwMjk5Mjg1OSwiaXNzIjoib3JjaGlkIn0.nFKHrcWogG-AQT5APtytE0CJtGerjqU9-uuUEmAu3Gw)

# Top Three Cryptography Techniques

![](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/7c0eeebb-cdf8-47f3-912b-0f31ab1d87e6/IMG_2684.jpg align="left")

* Symmetric-key cryptography: a shared key is used for both encryption and decryption.
    
    * Anyone with access to the key can decrypt the data which is why keys should be shared over a secure connection.
        
    * Ideal for when encryption and decryption should be quick. Eg; encrypting bulk amounts of data.
        
* Asymmetric-key cryptography: two different keys are used for encryption and decryption; a public key and a private key.
    
    * Widely used where communication is done over an insecure medium such as web browsing or emailing.
        
* Hash functions: a function is used to convert an input (text) into a unique hash that is near impossible to reverse and retrieve the original text.
    
    * They’re used heavily in security & data retrieval in conjunction with other methods.
        
    * Hash functions are often used as a layer of security when sensitive information is stored, & to verify data integrity.
