2
4 Comments

Dev Tip #3 : On scalability

Makers and hackers,

Scalability is not only about managing growth but also about establishing a strong foundation for the future.

As an indie hacker how can you ensure that your application will be scalable in the future? What are some important factors to consider?

-----Utilize scalable databases, adopt serverless for flexibility, and think about a microservices architecture.

Any other thoughts?

on February 7, 2024
  1. 2

    Hey Nikolas,

    I'm really keen to hear about your experience with microservices. I'm all about building a robust foundation that sets apps up to grow and scale with evolving requirements. The flexibility of microservices to accommodate new APIs, use cases, and technologies is particularly appealing to me.

    What's leading you towards microservices? Have you encountered any challenges or pain points that have slowed down your progress?

    Looking forward to your insights!

    1. 2

      Hi Zach,

      We choose microservices architecture as we have different scaling needs for different components within the platform. This ability, to scale particular components (or services) rather than the entire monolith is the biggest reason we went with this.

      Pain points: Main one is the overhead for service management - instead of managing one single service (when you have a monolith) vs managing several services (from a Devops perspective). We also have to put a lot of effort upfront to make sure we are scoping and assigning the right responsibilities for each microservice.

      Curious to hear your experience/perspective,

      Nikolas

      1. 2

        Hey Nikolas,
        The granular control over scaling for each service is a key benefit of micro services, making it a natural choice despite the added overhead. The complexity of orchestrating a microservices architecture can be challenging, especially with limited support when getting started.

        I'm currently developing a microservices boilerplate for future projects to streamline the setup process. The biggest challenge has been finding comprehensive documentation for each layer of the architecture. While there's a lot of excitement around microservices, examples are scarce.

        So far, I've built a basic structure with containerized components: frontend, API gateway, and essential services (auth, database management, Stripe, and email). My next step is orchestrating everything with Kubernetes or a similar tool.

        All of that to say "same" but I think the juice will be worth squeeze once getting the template built out. Thanks for sharing your perspective, it is helpful to know what to look out for as I keep building.

        1. 1

          Thanks for sharing your experience and happy to hear about your projects!

          I understand what you mean about the lack of docs/examples etc.

          Here are some blogs we have written - that might help/inspire:

          https://apyhub.com/blog/microservices-efficiency-with-utilities-as-a-service

          https://apyhub.com/blog/why-utility-as-a-service-is-a-critical-component-of-the-developer-toolset

          Of course these are not architecture manuals, rather more conceptual - around the use of external services in the first place.

          My passion is APIs (and the flexibility they offer) - so when building our catalog of APIs , ensuring we have proper documentation was #1 priority.