Skip to content

Instantly share code, notes, and snippets.

@saisurya-kat
Last active June 16, 2017 10:55
Show Gist options
  • Save saisurya-kat/537722ab80c07458f0ae45f5dd114a23 to your computer and use it in GitHub Desktop.
Save saisurya-kat/537722ab80c07458f0ae45f5dd114a23 to your computer and use it in GitHub Desktop.
Lagom Framework

Microservice Capabilities

  • Service Authoring : Development interfaces that abstract the core patterns of microservice solutions.
  • Service Discovery : Infrastructure for dynamically publishing and discovery microservices in a specific domain.(Consul.io,Etcd etc.)
  • Service Description : Metadata models for describing the capabilities of microservices.(Swagger,Thrift etc.)
  • Persistence : Microservices require isolated data persistence models to maintain its state.(NO SQL Databases)
  • Messaging Middleware : Queueing,PuSub and other fundamental message exchange patterns should me enabled in microservice solutions.(Kafka,RabbitMQ etc.)
  • Deployment Automation : Microservices technologies should abstract the pr

Lagom uses Reactive Principles to develop microservice

The Reactive Principles are

  • Responsive : System responds fast in a consistent way and encourages the user's interaction
  • Resilient : System stays responsive even in case of failure
  • Elastic : System stays responsive under varying workload.
  • MessageDriven : System internally uses asynchronous communication with messages.

Lagom Framework provides 4 main features

  • Service API : Allows to declare and implement synchronous and asynchronous services.
  • Persistence API : Provides persistence using patterns like EventSourcing and CQRS.
  • Development Env : Allows to run the services with few commands.
  • Production Environment : Allows deployment,monitoring,scaling.

Points to keep in mind when developing a microservice in Lagom

  • Does the service have a sole/single responsibility ?
  • Is the service autonomous ?( should work even other services are unavailable)
  • Does the service own its data ?

Architectural Concepts

  • Immutability
  • Event Sourcing etc

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment