15 September 2020

Dynamic Proxies in Java Mini-Book

* Dynamic proxies are such a tool. We can save thousands of lines of repetitive code with a single class. By taking a thorough look at how they work, we will recognize good use cases for them in our systems.

        https://www.infoq.com/minibooks/java-dynamic-proxies/

 


 

11 September 2020

ADR (Architectural Decision Records)

The content of the ADR can have the following sections:

  1. Title - Title of the decision record.
  2. Decision - The decision that was made. For instance, use Elasticsearch for an enterprise-wide search API.
  3. Status - Status can be proposed, accepted or superseded. If you make any decisions and you need to change them later, you can simply add a new record with the changed status.
  4. Context - What is the context of this decision? It is important to capture the full context of the decision so that the reader knows the reasons behind it.
  5. Consequences - In this section, you can add what would happen if this decision is made. It is important to list all consequences, both positive and negative.

https://github.com/joelparkerhenderson/architecture_decision_record 

https://github.com/npryce/adr-tools

 

02 September 2020

The Twelve-Factor App

 From wikipedia:

The Twelve-Factor App methodology is a methodology for building software-as-a-service applications. These best practices are designed to enable applications to be built with portability and resilience when deployed to the web.


https://12factor.net/


I. Codebase
One codebase tracked in revision control, many deploys

II. Dependencies
Explicitly declare and isolate dependencies

III. Config
Store config in the environment

IV. Backing services
Treat backing services as attached resources

V. Build, release, run
Strictly separate build and run stages

VI. Processes
Execute the app as one or more stateless processes

VII. Port binding
Export services via port binding

VIII. Concurrency
Scale out via the process model

IX. Disposability
Maximize robustness with fast startup and graceful shutdown

X. Dev/prod parity
Keep development, staging, and production as similar as possible

XI. Logs
Treat logs as event streams

XII. Admin processes
Run admin/management tasks as one-off processes

 

04 August 2020

Writing words

aforismo
nombre masculino
Frase o sentencia breve y doctrinal que se propone como regla en alguna ciencia o arte.
"los aforismos de Hipócrates"

epifanía

Del lat. tardío epiphanīa, y este del gr. ἐπιφάνεια epipháneia.

Escr. con may. inicial en acep. 2.

1. f. Manifestación, aparición o revelación.

24 July 2020

Migration p.1

There several techniques for migration legacies systems. One common task is to move from monolith to microservices, and a common strategy is to do an incremental rollout.

The migration can be achieved by using:
  1. Canary Deployment
  2. A/B Testing
  3. Blue-Green Deployment
  4. Feature flags (toggles)


Among several best practices for microservices design, one is : https://12factor.net/

 

My Blog List

Blog Archive

Disclaimer

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.